C# 当其他任务可能永远继续运行时,如何正确使用ContinueWith?
当另一个任务有可能永远继续运行时,如何正确使用C# 当其他任务可能永远继续运行时,如何正确使用ContinueWith?,c#,asynchronous,continuewith,C#,Asynchronous,Continuewith,当另一个任务有可能永远继续运行时,如何正确使用ContinueWith 例子: 任务是无限的,但我只想等她一段特定的时间: 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 even
ContinueWith
例子:
任务
是无限的,但我只想等她一段特定的时间:
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.
});
您可以运行另一个任务。请延迟以等待
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
});
但您应该使用一种方法来停止第一个任务,或者使用它
您可以运行另一个任务。请延迟等待
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
});
但您应该使用一种方法来停止第一个任务,或者使用它
简单的回答是你不。。。这没有任何意义,如果您想要一个可能的永无止境的任务,并且希望继续执行,那么您就没有适合该任务的工具job@Saruman但是我想保护自己,不要等太久。你到底是如何使用
。继续使用?您是检查t
是否有错误,还是只是想执行一些业务逻辑?简单的回答是您不。。。这没有任何意义,如果您想要一个可能的永无止境的任务,并且希望继续执行
,那么您就没有适合该任务的工具job@Saruman但是我想保护自己,不要等太久。你到底是如何使用。继续使用?您是检查t
是否有错误,还是只想执行一些业务逻辑?如果您不在意,线程池中的一个线程可能永远工作。有时我怀疑我的操作系统也是这样工作的@AccessDenied你是对的,我更新了答案continue的位置,更改后它将在“task”完成或“delayTask”完成后运行,以先发生的为准。如果你不介意,线程池中的一个线程可能永远工作。有时我怀疑我的操作系统也是这样工作的@AccessDenied您是对的,我会更新答案继续更改的位置,以便在“任务”完成或“延迟任务”完成后运行,以先发生的为准