【发布时间】:2017-08-23 16:45:33
【问题描述】:
我是否使用以下方法创建了Task:
Task.Factory.StartNew<GroupPreferenceList>(())
调用一个函数,就像我有 7 个方法,所有方法都包含一个或两个 API 调用。现在我正在使用:
Task.GetAwaiter().GetResult() 在非常任务上获得非常任务的结果并对其进行一些操作。
我的问题是我是否应该创建另一个并使用 WhenAll() 或者我正在做的事情是正确的和更快的。
谢谢
【问题讨论】:
-
请张贴代码。只是这个描述有点含糊。
-
只有当你想等到它们都准备好时,你才必须使用WhenAll()
-
好吧,一方面
Task.GetAwaiter().GetResult是一个阻塞调用,可能导致死锁。所以使用await。其次,如果任务可以并行运行使用WhenAll,否则它们将按顺序等待对方完成。 -
#Peter Bons,因为任务是通过使用 Factory.start() 创建的,然后函数被执行,这就是我不使用 WhenAll() 的原因,如果错了,请提出。
标签: c# async-await task-parallel-library