[英]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.