【发布时间】:2014-11-20 16:10:39
【问题描述】:
如果我有一个需要执行多个任务的“登录”命令,并且我的代码如下所示
public async void LoginAsync()
{
await someService.Connect().ContinueWith(async (r) =>
{
//do some stuff with r.Result here
})
.ContinueWith(async (r) =>
{
//do some other stuff here
})
ContinueWith(async (r) =>
{
//do even more stuff here
});
沿着幸福的道路前进,代码按预期执行,一切都很好。
我的问题是,如果链中的一个任务出现问题/异常,我该如何取消剩余的任务并向调用者报告问题所在?
我已经尝试在 ContinueWith 语句中抛出异常,但这些没有被我放在调用者代码周围的 try/catch 块捕获。
我已经阅读了关于 CancellationTokenSource 的信息,感觉它走在了正确的轨道上,但是尝试在这种情况下实现 MSDN 上的示例代码似乎行不通。
任何指针都会很棒
克里斯
【问题讨论】:
标签: c# c#-4.0 task-parallel-library async-await windows-phone-8.1