我有多个任务返回我想要使用Task.WhenAll调用的相同对象类型(new [] {t1,t2,t3});并阅读结果.
当我尝试使用时
- Task<List<string>> all = await Task.WhenAll(new Task[] { t,t2 }).ConfigureAwait(false);
我收到编译器错误
Cannot implicitly convert type ‘void’ to
'System.Threading.Tasks.Task<System.Collections.Generic.List<string>>
- private Task<List<string>> GetFiles(string path)
- {
- files = new List<string>();
- return Task.Run(() =>
- {
- //remove for brevity
- return files;
- });
- }
解决方法
看起来你正在使用不返回值的WaitAll()重载.如果进行以下更改,则应该可以正常工作.
- List<string>[] all = await Task.WhenAll(new Task<List<string>>[] { t,t2 })
- .ConfigureAwait(false);