C# 将较大的方法分成两个线程

标签 c# multithreading

如果我有一个由两个小方法组成的大方法:

public int LargeMethod() 
{ 
int result = 0; 
result += SmallMethodA(); 
result += SmallMethodB(); 
}

这两个小方法都会阻塞我的程序至少 2 秒,我相信如果我让这两个方法在它们自己的线程中运行,性能确实会更好。

你能推荐一个编程模型吗?

最佳答案

如果您使用的是 .NET 4,则可以使用任务

public int LargeMethod()
{
    int result = 0;
    Task<int> t1 = new Task<int>(SmallMethodA);
    Task<int> t2 = new Task<int>(SmallMethodB);
    t1.Start();
    t2.Start();
    result += t1.Result;
    result += t2.Result;
    return result;
}

关于C# 将较大的方法分成两个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4303605/

相关文章:

java - JRuby 和 Swing 事件调度线程

c# - 如何将 nunit 测试结果包含在 sonarcube 4.5.1 c# 插件 3.3 sonar-project.properties 文件中?

c# - 安装没有模板的服务

c# - 使用 UnityAction 传递参数

c# - OUT 事务的 PING 流量控制

c# - 使用 c# 的 Thread 和 Task 之间的性能比较

javascript - 每次调用模块时的非全局变量

c# - 如何获取通过Azure函数事件中心触发器接收到的事件的messageId或eventId?

c# - 使用 Invoke 从另一个线程获取 tabControl SelectedTab

javascript - WinJS/Metro 应用程序是单线程的吗?