【发布时间】:2018-06-06 11:00:54
【问题描述】:
如果我有例如以下代码:
Task task = Task.Factory.StartNew(() =>
{
work1();
work2();
work3();
work4();
...
}, token);
if (!task.Wait(10 * 1000))
{
...timeout
}
是否有可能完成一个行为,如果我超时,超时任务中的逻辑也会被取消?例如:如果work1 花了 11 秒然后完成,我想确保之后的所有工作都不会执行。
【问题讨论】:
-
你可以这样做,
token.Cancel();如果这是你的要求 -
一定是骗子。
-
你应该避免使用
Task.Factory.StartNew,而是使用Task.Run。