2016-06-18 23 views
-3

待機中のスレッドをブロックすることなく、別のスレッドからのイベント信号を待つ必要があります。理想的にはawaitを使用します。AutoResetEvent and await

私は、このソリューションを考えた:

 await Task.Run(() => myAutoResetEvent.WaitOne()); 

私はそれで概念的に何か問題があるかどうかを知りたい、より良い代替手段が

感謝がある場合は!

+0

エラーが発生しましたか?どのエラーですか? – Tinwor

+0

いいえ、エラーはありません。概念的な誤りがあるのか​​不思議です。私は少し質問を明確にした。 –

答えて

1

これを行う際に何か問題がありますか?

"信号"を待つためにスレッドプールスレッドを使用しています。

もっと良い選択肢は何ですか?

あなたは、このようなmy AsyncEx libraryで1またはStephen Toub's blogの一つとして、非同期互換AutoResetEventを使用することができます。

また、ほとんどの場合、自動リセットイベントは誤った使い方です。マニュアルリセットイベントはもっと一般的です。同期プリミティブのこの選択を再評価することをお勧めします。