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

本文关键字:线程 执行 方法 ASP NET 应用 | 更新日期: 2023-09-27 18:34:26

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

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

您只需

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

var tasks = new Task<YourResultType>[]
{
    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