ymm4-plugin-document
読み取り中…
検索中…
一致する文字列を見つけられません
YukkuriMovieMaker.Commons.WaitHandleEx クラス

WaitHandleに関する拡張メソッドを提供します。 [詳解]

静的公開メンバ関数

static Task WaitOneAsync (this WaitHandle waitHandle)
 WaitHandleがシグナル状態になるのを非同期で待ちます。

詳解

WaitHandleに関する拡張メソッドを提供します。

メソッド詳解

◆ WaitOneAsync()

Task YukkuriMovieMaker.Commons.WaitHandleEx.WaitOneAsync ( this WaitHandle waitHandle)
static

WaitHandleがシグナル状態になるのを非同期で待ちます。

引数
waitHandle待機するWaitHandle。
戻り値
待機操作を表すTask。
例外
ArgumentNullExceptionwaitHandle が<c>nullの場合にスローされます。

このメソッドは、ThreadPool.RegisterWaitForSingleObjectを使用して、 WaitHandleがシグナル状態になったときにタスクを完了させます。 これにより、UIスレッドなどをブロックすることなく待機操作を実行できます。 タスクが完了すると、登録された待機ハンドルは自動的に登録解除されます。

public async Task DemonstrateWaitAsync()
{
using (var autoResetEvent = new AutoResetEvent(false))
{
// 別スレッドで1秒後にイベントをセットする
_ = 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.");
}
}

このクラス詳解は次のファイルから抽出されました: