(私は以前にこの質問System.Threading.Tasks
をしましたが、いくつかの制約について言及するのを忘れていました。これは、Silverlight4とC#4を備えたWindows Phone 7.1(Mango)用await
です。このようなパーティライブラリ。)
私は自分で使用するためにライブラリをラップしています。特定のプロパティを取得するには、イベントを待つ必要があります。イベントは非常に速く発生します。私はそれをブロッキング呼び出しにラップしようとしています。
基本的には向きを変えたい
void Prepare()
{
foo = new Foo();
foo.Initialized += OnFooInit;
foo.Start();
}
string Bar
{
return foo.Bar; // Only available after OnFooInit has been called.
}
これに
string GetBarWithWait()
{
foo = new Foo();
foo.Initialized += OnFooInit;
foo.Start();
// Wait for OnFooInit to be called and run, but don't know how
return foo.Bar;
}
これを最もよく達成するにはどうすればよいでしょうか。