在线 MSDN 文章中 "How to: Wait on One or More Tasks to Complete" ,有一段代码:
// Try three different approaches to the problem. Take the first one
tasks2[0] = Task<double>.Factory.StartNew(() => TrySolution1());
tasks2[1] = Task<double>.Factory.StartNew(() => TrySolution2());
tasks2[2] = Task<double>.Factory.StartNew(() => TrySolution3());
调用 3 种不同的方法,所有方法都具有完全相同的主体:
static double TrySolution1()
//static double TrySolution2()
//static double TrySolution3()
{
int i = rand.Next(1000000);
// Simulate work by spinning
Thread.SpinWait(i);
return DateTime.Now.Millisecond;
}
我无法理解这些重复的实现说明了什么?
使用一种方法有什么区别
tasks2[0] = Task<double>.Factory.StartNew(() => TrySolution1());
tasks2[1] = Task<double>.Factory.StartNew(() => TrySolution1());
tasks2[2] = Task<double>.Factory.StartNew(() => TrySolution1());
?
最佳答案
这真的会用一种方法给你同样的答案。在这方面,这个例子是一个“糟糕的例子”。话虽这么说,这只是一个如何解决问题的示例,而不是您将使用的“真实代码”。
我怀疑它背后的想法是向您展示如何使用多个单独的方法(当然,通常会以不同的方式实现)并确定哪个先完成。我确实相信,如果对每种方法使用不同的实现,该示例会更加清晰,但所演示的概念将是相同的。
关于c# - 为什么要在任务中使用多个重复的方法实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15713838/