【问题标题】:The different use of Task Parallel libraryTask Parallel库的不同用途
【发布时间】:2012-09-21 17:50:20
【问题描述】:

我看到很少有人使用如下语法调用函数:

Parallel.Invoke(() => Method1(yourString1),() => Method2(youString2));

很少有人写这样的代码:

Task myFirstTask = Task.Factory.StartNew(() => Method1(5));
Task mySecondTask = Task.Factory.StartNew(() => Method2("Hello"));

所以我的问题是什么时候应该使用 Parallel.Invoke() 以及什么时候应该创建 Task 类的实例并调用 StartNew() 方法。

Parallel.Invoke()看起来很方便。那么使用Task类&StartNew()方法的意义是什么............put一些光明,告诉我不同​​方法对同一种工作的重要性意味着用两种不同的语法并行调用两个函数。

我之前从未使用过 Task Parallel 库。所以使用两种方法调用函数可能有一些隐藏的原因。请详细指导我。谢谢

【问题讨论】:

    标签: c# task-parallel-library


    【解决方案1】:

    好吧,Parallel.Invoke 将阻塞,直到两个新任务都完成。

    第二种方法将启动两个新任务,但不等待它们完成。您可以手动等待它们,或者在 C# 5 中,新的 async/await 功能将帮助您异步“等待”。

    这真的取决于你想做什么。如果您希望在所有任务完成之前阻塞线程,Parallel.Invoke 很方便。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-12
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      相关资源
      最近更新 更多