8
私は自分でライブラリをラッピングしています。特定のプロパティを取得するには、私はイベントを待つ必要があります。私は非同期呼び出しにそれをラップしようとしています。イベントを非同期呼び出しに変換
基本的に、私はこれが最善達成することができるどのようにこの
async string GetBarAsync()
{
foo = new Foo();
foo.Initialized += OnFooInit;
foo.Start();
// Wait for OnFooInit to be called and run, but don't know how
return foo.Bar;
}
中に、
void Prepare()
{
foo = new Foo();
foo.Initialized += OnFooInit;
foo.Start();
}
string Bar
{
return foo.Bar; // Only available after OnFooInit has been called.
}
をオンにしたいですか?私はちょうどループして待つことができますが、Monitor.Pulse()、AutoResetEventなどを使用するなど、より良い方法を見つけようとしています。
私は、この関数は非同期関数でラップすることができたと思いますか?または、関数にasyncを追加し、resultCompletionSource.Task.Resultを返します。それはそれを待たせるだろうか? –
これは非同期関数でラップして今すぐサンプルを更新する – Polity
ターゲットプラットフォームであるWindows Phone 7ではSystem.Threading.Tasksを使用できません。代わりがありますか? ([this](http://www.nuget.org/packages/System.Threading.Tasks)が見つかりましたが、私は依存関係を最小限に抑えたい) –