Прочитать на английском

Поделиться через


Stream.EndWrite(IAsyncResult) Метод

Определение

Заканчивает операцию асинхронной записи. (Рекомендуется использовать WriteAsync(Byte[], Int32, Int32).)

public:
 virtual void EndWrite(IAsyncResult ^ asyncResult);
public virtual void EndWrite (IAsyncResult asyncResult);
abstract member EndWrite : IAsyncResult -> unit
override this.EndWrite : IAsyncResult -> unit
Public Overridable Sub EndWrite (asyncResult As IAsyncResult)

Параметры

asyncResult
IAsyncResult

Ссылка на невыполненный асинхронный запрос ввода-вывода.

Исключения

asyncResult имеет значение null.

Обработчик отложенной операции записи не доступен.

-или-

Ожидающая операция не поддерживает запись.

asyncResult не происходит из метода BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) в текущем потоке.

Поток закрыт, или произошла внутренняя ошибка.

Комментарии

В платформе .NET Framework 4 и более ранних версий для реализации операций асинхронного ввода-вывода необходимо использовать такие методы, как BeginWrite и EndWrite . Эти методы по-прежнему доступны в платформа .NET Framework 4.5 для поддержки устаревшего кода. Однако новые асинхронные методы, такие как ReadAsync, WriteAsync, CopyToAsyncи FlushAsync, упрощают реализацию асинхронных операций ввода-вывода.

EndWrite должен вызываться ровно один раз для каждого IAsyncResult из BeginWrite.

Этот метод блокируется до завершения операции ввода-вывода. Ошибки, возникающие во время асинхронного запроса на запись, такие как сбой диска во время запроса ввода-вывода, происходят в потоке пула потоков и становятся видимыми при вызове EndWriteметода . Исключения, создаваемые потоком пула потоков, не будут видны при вызове EndWrite.

Применяется к

Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

См. также раздел