为了账号安全,请及时绑定邮箱和手机立即绑定

C#中如何用多线程加快计算速度?

C#中如何用多线程加快计算速度?

C#
炎炎设计 2019-03-27 18:17:17
我有一计算密集型程序段:for(int i=1; i<=100; i++){DoCalc(i);}AAA;BBB;......i从1至100要计算完需要很长时间,然后才能执行后面的AAA,BBB语句。可否采用多线程方式加快计算速度,代码应该怎样写?DoCalc(i),计算和顺序无关,只要100个计算都分别处理完即可,而且,不涉及读写共同资源的问题。
查看完整描述

3 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

多线程不是用来加快速度的,而是用做其它用途的。
多线程本身不能加快速度,除非你针对多核CPU进行了特殊优化。因为不管怎么分线程,最终你的计算量都是一样的,而多线程的操作中间会带来线程间通信的开销,所以速度不会快只可能降低(除非针对多核CPU进行了特殊优化可以使用所有的核心)。

查看完整回答
反对 回复 2019-03-30
?
九州编程

TA贡献1785条经验 获得超4个赞

Thread [] tList = new Thread [100] ;

for(int i=1; i<=100; i++)
{
// 这里改成多线程。
tList [i] = new Thread (new new ParameterizedThreadStart(DoCalc));
tList [i].Start (i) ;
}

// 等待每一个线程结束。
for (int i = 1 ; i <= 100 ; i ++)
{
tList [i].Join () ;
}
AAA;
BBB;
......



查看完整回答
反对 回复 2019-03-30
  • 3 回答
  • 0 关注
  • 1186 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信