我看到很少有人使用如下语法调用函数:
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() 方法有什么意义.........一些光告诉我不同方法对同一种工作的重要性意味着用两种不同的语法并行调用两个函数。
在Task Parallel 库 之前我从未使用过。所以使用两种方法调用函数可能有一些隐藏的原因。请详细指导我。谢谢
最佳答案
好吧,Parallel.Invoke
将阻塞,直到两个新任务都完成。
第二种方法将启动两个新任务,但不等待它们完成。您可以手动等待它们,或者在 C# 5 中,新的异步/等待功能将帮助您异步“等待”。
这真的取决于你想做什么。如果您希望您的线程在所有任务完成之前阻塞,Parallel.Invoke
很方便。
关于c# - Task Parallel库的不同使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11931135/