4

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

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()方法的意义是什么............放一些光,告诉我不同​​方法对同一种工作的重要性意味着调用两个函数并行使用两种不同的语法。

我从来没有在任务并行库之前使用过。所以使用两种方法调用函数可能有一些隐藏的原因。请详细指导我。谢谢

4

1 回答 1

6

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

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

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

于 2012-08-13T09:07:45.757 回答