WaitHandleに関する拡張メソッドを提供します。
[詳解]
|
static Task | WaitOneAsync (this WaitHandle waitHandle) |
| WaitHandleがシグナル状態になるのを非同期で待ちます。
|
WaitHandleに関する拡張メソッドを提供します。
◆ WaitOneAsync()
Task YukkuriMovieMaker.Commons.WaitHandleEx.WaitOneAsync |
( |
this WaitHandle | waitHandle | ) |
|
|
static |
WaitHandleがシグナル状態になるのを非同期で待ちます。
- 引数
-
waitHandle | 待機するWaitHandle。 |
- 戻り値
- 待機操作を表すTask。
- 例外
-
ArgumentNullException | waitHandle が<c>nullの場合にスローされます。 |
このメソッドは、ThreadPool.RegisterWaitForSingleObjectを使用して、 WaitHandleがシグナル状態になったときにタスクを完了させます。 これにより、UIスレッドなどをブロックすることなく待機操作を実行できます。 タスクが完了すると、登録された待機ハンドルは自動的に登録解除されます。
public async Task DemonstrateWaitAsync()
{
using (var autoResetEvent = new AutoResetEvent(false))
{
_ = Task.Run(async () =>
{
await Task.Delay(1000);
Console.WriteLine("Event is being set from another thread.");
autoResetEvent.Set();
});
Console.WriteLine("Waiting for event...");
await autoResetEvent.WaitOneAsync();
Console.WriteLine("Event was signaled! Wait is over.");
}
}
このクラス詳解は次のファイルから抽出されました: