当我需要一些并行处理时,我通常这样做:
static void Main(string [] args){ var tasks = new List< Task>(); var toProcess = new List< string> {“dog”,“cat”,“…
Task 意味着“需要做的事情,可能已经完成,可能在并行线程上执行,或者可能依赖于进程外数据(套接字等),或者可能只是...连接到交换机在某个地方说'完成'“ - 它有 很少 与线程有关,除了:如果你安排一个 延续 (又名 await ), 然后 不知何故 这将需要回到一个线程来触发,但是这是如何发生的,这意味着什么是创建的任何代码并拥有该任务。
Task
await
注意:并行性 可以表达 就多个任务而言(如果您这样选择),但多个任务并不意味着并行性。
在你的情况下:这一切都取决于什么 CanRun 是或是 - 和 我们不知道 。它也应该被称为 CanRunAsync 。
CanRun
CanRunAsync