このトピックのコード例では、 BeginInvoke と EndInvoke を使用して非同期呼び出しを行う 4 つの一般的な方法を示します。 BeginInvoke を呼び出した後、次の処理を行うことができます。 何か処理を実行した後、呼び出しが完了するまでブロックする EndInvoke を呼び出します。 WaitHandle プロパティを使用して IAsyncResult.AsyncWaitHandle を取得し、その WaitOne メソッドを使用して WaitHandle が通知されるまで実行をブロックし、 EndInvokeを呼び出します。 IAsyncResult によって返される BeginInvoke をポーリングして非同期呼び出しが完了したかどうかを確認した後、 EndInvokeを呼び出します。 コールバック メソッドのデリゲートを BeginInvokeに渡します。
![同期メソッドの非同期呼び出し - .NET](https://cdn-ak-scissors.b.st-hatena.com/image/square/94146f9cb22d996346e1d1073081149ad9dde53a/height=288;version=1;width=512/https%3A%2F%2Flearn.microsoft.com%2Fdotnet%2Fmedia%2Fdot-net-cross-platform.png)