Asynchronous Programming Using Delegates
Delegates enable you to call a synchronous method in an asynchronous manner. When you call a delegate synchronously, the
Invoke method calls the target method directly on the current thread. If the
BeginInvoke method is called, the common language runtime (CLR) queues the request and returns immediately to the caller. The target method is called asynchronously on a thread from the thread pool. The original thread, which submitted the request, is free to continue executing in parallel with the target method. If a callback method has been specified in the call to the
BeginInvoke method, the callback method is called when the target method ends. In the callback method, the
EndInvoke method obtains the return value and any input/output or output-only parameters. If no callback method is specified when calling
EndInvoke can be called from the thread that called
Compilers should emit delegate classes with
Calling Synchronous Methods Asynchronously
Discusses the use of delegates to make asynchronous calls to ordinary methods, and provides simple code examples that show the four ways to wait for an asynchronous call to return.
Event-based Asynchronous Pattern (EAP)
Describes asynchronous programming with the .NET Framework.