在ASP.NET应用程序中执行多个线程上的方法

我有一个ASP.NET应用程序,其中一个请求调用6个非常慢的方法。 这些方法不是异步的,我没有时间重写和测试它们。 如何在6个线程上运行这6个方法,然后对结果进行聚合? 我在.NET 4.5上。

您可以简单地使用Task.Run创建一个任务来运行另一个线程中的每个方法,然后等待它们全部完成,以便您可以使用结果。

 var tasks = new Task[] { Task.Run(() => Method1()), Task.Run(() => Method2()), Task.Run(() => Method3()), Task.Run(() => Method4()), Task.Run(() => Method5()), Task.Run(() => Method6()), }; var results = Task.WhenAll(tasks).Result; 

如果方法并非都具有相同类型的结果,允许您将所有任务放入数组中,那么您需要为每个任务分别使用单独的局部变量,并在启动它们之后对每个任务使用Result