Stream.EndWrite(IAsyncResult) Method

Definition

Ends an asynchronous write operation. (Consider using WriteAsync(Byte[], Int32, Int32) instead.)

C#
public virtual void EndWrite(IAsyncResult asyncResult);

Parameters

asyncResult
IAsyncResult

A reference to the outstanding asynchronous I/O request.

Exceptions

asyncResult is null.

A handle to the pending write operation is not available.

-or-

The pending operation does not support writing.

asyncResult did not originate from a BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) method on the current stream.

The stream is closed or an internal error has occurred.

Remarks

In the .NET Framework 4 and earlier versions, you have to use methods such as BeginWrite and EndWrite to implement asynchronous I/O operations. These methods are still available in the .NET Framework 4.5 to support legacy code; however, the new async methods, such as ReadAsync, WriteAsync, CopyToAsync, and FlushAsync, help you implement asynchronous I/O operations more easily.

EndWrite must be called exactly once on every IAsyncResult from BeginWrite.

This method blocks until the I/O operation has completed. Errors that occur during an asynchronous write request, such as a disk failure during the I/O request, occur on the thread pool thread and become visible upon a call to EndWrite. Exceptions thrown by the thread pool thread will not be visible when calling EndWrite.

Applies to

Product Versions
.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

See also