(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