C# Task.WhenAll在PCL中

C# Task.WhenAll在PCL中,c#,windows-8.1,portable-class-library,C#,Windows 8.1,Portable Class Library,我试图在我的可移植类库中运行一些,但该方法似乎不受支持 我目前的解决方法是启动每个任务,然后等待每个任务: var task1 = myService.GetData(source1); var task2 = myService.GetData(source2); var task3 = myService.GetData(source3); // Now everything's started, we can await them var result1 = await task1; v

我试图在我的可移植类库中运行一些,但该方法似乎不受支持

我目前的解决方法是启动每个任务,然后等待每个任务:

var task1 = myService.GetData(source1);
var task2 = myService.GetData(source2);
var task3 = myService.GetData(source3);

// Now everything's started, we can await them
var result1 = await task1;
var result1 = await task2;
var result1 = await task3;
有什么我遗漏的吗?我需要解决这个问题吗

有什么我遗漏的吗

是:

安装该软件包后,可以使用
TaskEx.WhenAll
替代
Task.WhenAll

var task1 = myService.GetData(source1);
var task2 = myService.GetData(source2);
var task3 = myService.GetData(source3);

// Now everything's started, we can await them
var results = await TaskEx.WhenAll(task1, task2, task3);

P.S.考虑使用并行的术语(CPU绑定)并行处理,同时使用一次做多个事物的术语。在这种情况下,(I/O绑定)任务是并发的,但不是并行的。

也许您可以用某种方式重写它,以便使用其中一种方法?应支持这些。可移植类Libarary中不支持whalll时,则支持。你能通过等待一切然后开始解决它吗?我能解决它。没什么大不了的,酷。我安装了Microsoft.Bcl.Async,所以TaskEx就在那里等着我使用它!