Task.WaitAll()的默认超时

时间:2014-08-22 11:30:52

标签: c# multithreading asynchronous task .net-4.5

Task.WaitAll?的默认超时时间是无限的吗? Task.WaitAll(stuff.AsyncMethod());是否等于Task.WaitAll(new Task[] { stuff.AsyncMethod() }, -1);

我尝试使用谷歌搜索并追查docs但找不到它。

2 个答案:

答案 0 :(得分:1)

是的,它是等价的。这是您正在调用的方法,然后调用接受超时的重载并默认传递-1

public static void WaitAll(params Task[] tasks)
{
    Task.WaitAll(tasks, -1);
}

在您关联的文档中,它表示-1将“无限期地等待”。

答案 1 :(得分:1)

当方法重载需要timespan timeout作为参数而另一个没有时,它意味着没有超时的那个(即无限制)。

以下是实施:

public static void WaitAll(params Task[] tasks)
{
  Task.WaitAll(tasks, -1);
}