繁体   English   中英

为什么Task.WhenAll可以接受任意数量的Task参数?

[英]Why can Task.WhenAll take any number of Task arguments?

在查看Async和Await时,我注意到Task.WhenAll可以用任意数量的参数调用:

Threading.Tasks.Task.WhenAll(New Threading.Tasks.Task(New Action(Sub() Console.WriteLine("Hello"))),
                             New Threading.Tasks.Task(New Action(Sub() Console.WriteLine("Hello"))),
                             New Threading.Tasks.Task(New Action(Sub() Console.WriteLine("Hello"))),
                             New Threading.Tasks.Task(New Action(Sub() Console.WriteLine("Hello"))),
                             New Threading.Tasks.Task(New Action(Sub() Console.WriteLine("Hello"))))

为什么这样做有效,但是Array.Reverse之类的方法不允许您传递任何数量的参数?

结果发现,在查看.Net参考源站点上的代码(特别是Tasks数组的重载)之后,并且在查看了此SO帖子之后 ,我发现params关键字(在VB.Net中为ParamArray )允许您传递无参数,指定类型的任意数量的逗号分隔参数,或指定类型的数组。

您可以将其想像为用Java解析数组或用Python解析args数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM