当另一个任务有可能永远继续运行时,如何正确使用ContinueWith
?
例:
task
是无限的,但我只想等她特定的时间:
var task = Task.Factory.StartNew(() =>
{
//Small chance for infinite loop
});
task.ContinueWith(t => {
//We would still like to get here after a certion amount of time eventualy.
});
您可以运行另一个 Task.延迟等待
var task = Task.Factory.StartNew(() =>
{
//Small chance for infinite loop
});
var delayTask = Task.Delay(2000); // A wait task
Task.WhenAny(delayTask,task).ContinueWith((t) =>
{
//check which task has finished
});
但是你应该使用一种方法来停止第一个任务 如何超时或使用 取消令牌来源