(I asked this question)之前將事件轉換爲異步/阻塞呼叫,但忘記提及一些限制。這適用於Silverlight 4和C#4的Windows Phone 7.1(芒果),缺少System.Threading.Tasks
,await
以及更多,我希望再次提出一個沒有像this這樣的第三方庫的原生解決方案。)在Windows Phone 7(C#)
我正在爲自己的應用打包庫。爲了獲得某個屬性,我需要等待一個事件,該事件很快就會發生。我試圖將其封裝成阻塞呼叫。
基本上,我想轉
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;
}
這怎麼可能最好地完成?
現在,您可以下載'Microsoft.Bcl.Async'爲Windows Phone 7 - 它允許異步和等待的使用,你會預計 – Brendan