jpa*_*tte 3 c# callback task-parallel-library silverlight-5.0
我有一个Silverlight 5应用程序,其中包含一组具有与此类似的签名的方法:
public void AskConfirmation(Action<bool> callback);
Run Code Online (Sandbox Code Playgroud)
通常,这些方法引发InteractionRequest以与用户交互,等待输入.
我想利用Task Parallel Library和async/await关键字,所以我想用以下签名定义第二个方法:
public Task<bool> AskConfirmation();
Run Code Online (Sandbox Code Playgroud)
第二种方法依赖于第一种方法.不幸的是,我无法弄清楚如何实现它.
当他们遵循基于事件的异步模式或开始/结束模式时,将异步操作包装到任务中很容易,但在我的情况下这些是明显的过度杀伤,所以我不想实现它们.但是现在我被卡住了.有没有人遇到过同样的问题并找到了解决方案?
public Task<bool> AskConfirmation()
{
var tcs = new TaskCompletionSource<bool>();
AskConfirmation(b => tcs.TrySetResult(b));
return tcs.Task;
}
Run Code Online (Sandbox Code Playgroud)