簡體   English   中英

Task.WaitAll超時時如何獲得未完成的任務?

[英]How to get unfinished tasks when Task.WaitAll times out?

當同步等待任務數組以使用Task.WaitAll方法完成時,可以指定超時(以毫秒為單位)。 達到超時后, WaitAll停止等待並返回false

我想知道是否有一種方法可以獲取超時后未完成的任務的子列表。

正如Jeroen Mostert在評論中所建議的那樣,當Task.WaitAll在超時后返回false時,我們可以篩選完成的任務。

例:

var tasks = new task[] 
{
    Task.Run(someMethod),
    Task.Run(someMethod1),
    Task.Run(someMethod2),
    Task.Run(someMethod3),
};

bool allTasksAreCompleted = Task.WaitAll(tasks, 10000);

if (!allTasksAreCompleted)
{
    var incompleteTasks = tasks.Where(t => !t.IsCompleted);
}

如果Task.WaitAll超時,我們將在incompleteTasks變量中獲取未完成的任務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM