The asynchronous programming model (APM) is an asynchronous operation that uses the
IAsyncResult interface as its design pattern. It's also called the
IAsyncResult pattern. For this purpose, the framework has provided the method named
EndXx, in which
Xx is the operation name, for instance,
EndRead provided by the
FileStream class to read bytes from a file asynchronously.
The difference in the synchronous
Read() method with
EndRead() can be recognized from the method's declaration, as follows:
public int Read( byte array, int offset, int count ) public IAsyncResult BeginRead( byte array, int offset, int numBytes, AsyncCallback userCallback, object stateObject ...