【发布时间】:2012-09-22 22:40:10
【问题描述】:
我有这行代码:
t.ContinueWith(_ => form.Close(),
TaskScheduler.FromCurrentSynchronizationContext());
...关于编译器要说的:
警告 2 由于不等待此调用,因此在调用完成之前继续执行当前方法。考虑将 'await' 运算符应用于调用结果。
现在,这不是我编写的代码,但我认为它只是在现有任务的末尾添加一个延续。我不认为它实际上是 running 任务(或延续)。那么这个仅仅修改任务的过程肯定是同步操作吗?为什么我要await呢?
【问题讨论】:
-
你能把整个方法贴出来吗?
-
斯蒂芬,这是你的代码 :-) 见stackoverflow.com/a/12513296/98422
-
没有周围的代码,我不确定,但为什么不只是等待t然后form.Close?
-
周围的代码可以在上面的链接中找到(2 cmets up)。任务 t 已经在进行中,周围代码的重点是在 t 执行时显示一个进度对话框,因此
await-ing t 在这里不合适。 -
这将教我在不编译的情况下发布代码! :)
标签: c# .net-4.5 compiler-warnings async-await