NetworkStream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Начинает асинхронную запись в поток.
public:
override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public:
override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int size, AsyncCallback ^ callback, System::Object ^ state);
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback? callback, object? state);
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int size, AsyncCallback? callback, object? state);
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int size, AsyncCallback callback, object state);
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginWrite (buffer As Byte(), offset As Integer, count As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Public Overrides Function BeginWrite (buffer As Byte(), offset As Integer, size As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Параметры
- buffer
- Byte[]
Массив типаByte, содержащий данные для записи в .NetworkStream
- offset
- Int32
buffer Расположение для начала отправки данных.
- countsize
- Int32
Число байтов для записи в NetworkStream.
- callback
- AsyncCallback
Делегат AsyncCallback , который выполняется после BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) завершения.
- state
- Object
Объект, содержащий дополнительные пользовательские данные.
Возвращаемое значение
Объект, IAsyncResult представляющий асинхронный вызов.
Исключения
Параметр buffer имеет значение null.
Параметр offset меньше 0.
–или–
Параметр offset больше длины buffer.
–или–
Параметр size меньше 0.
–или–
Параметр size больше длины buffer минус значение offset параметра.
Базовый Socket объект закрыт.
–или–
Во время записи в сеть произошел сбой.
–или–
При доступе к сокету произошла ошибка.
NetworkStream закрыт.
Комментарии
Это важно
Это API совместимости. Мы не рекомендуем использовать методы APM (Begin/End) для новой разработки. Вместо этого используйте эквиваленты на основе задач.
Вы можете передать обратный вызов, который реализуется AsyncCallbackBeginWrite для получения уведомлений о завершении операции. Обратите внимание, что если базовый сетевой стек завершает операцию синхронно, обратный вызов будет выполняться во время вызова BeginWrite. В этом случае CompletedSynchronously для возвращаемого IAsyncResult свойства будет задано true значение, указывающее, что метод завершился синхронно.
AsyncState Используйте свойство IAsyncResult объекта состояния, переданного методуBeginWrite.
Операция BeginWrite должна быть завершена EndWrite путем вызова метода. Как правило, метод вызывается предоставленным AsyncCallback делегатом. EndWrite блокирует вызывающий поток до завершения операции.
Замечание
Если вы получаете IOExceptionсвойство, проверьте InnerException , было ли оно вызвано SocketException. В этом случае используйте ErrorCode свойство для получения определенного кода ошибки.
Операции чтения и записи можно выполнять одновременно на экземпляре NetworkStream класса без необходимости синхронизации. Если для операций записи существует один уникальный поток и один уникальный поток для операций чтения, между потоками чтения и записи не требуется перекрестная интерференция между потоками чтения и записи, а синхронизация не требуется.