最近在做一个网络程序
直接调用线程
Thread AA=new Thread(new ThreadStart(FCCC));
AA.Star();
计数器统计:13000用委托        
delegate void DELEGATE_A();
public void FCCC();---多余的省略---
Thread AA=new Thread(new ThreadStart(DELE));
AA.Star();private void DELE()
{DELEGATE_A TMP=new DELEGATE_A(FCCC)
invoke(TMP);
}
计数器统计:25000XD 怎么回事 直接调用效率比委托还低?????

解决方案 »

  1.   

    一个周期 (10秒内)
    10秒中不做任何中断 运行线程和invoke
    结果还是invoke快
      

  2.   

    在笔记本上是invoke 快 CPU T5200
    在服务器上是直接多开线程快 CPU XEON 3.0 ×2
      

  3.   

    多看下线程的知识应该能知道了
    你应该先明白计算机的原理,CPU就好像是人的大脑,同一时间只能思考一件事情,虽然平时计算机看似同时在处理很多程序,但是它也是分步来处理的,只不过每个程序执行的转换间隔非常短,人感觉不到而已。
    如果只有一个CPU的情况下,就好像一个人有做一件事有10个工序,不管你把工序分开还是看做一个整体,都是他自己在做,花费的时间是一样的,甚至一分了工序以后中间还有一些工序转换的衔接,反倒慢了。
    但是如果有两个CPU或者双核计算机,或者更高级的服务器,那效果就不一样了,同样的一件事,同样的分成十个工序让几个人做和不分工的全让一个人来做,效率就显而易见了。
    不知道楼主能理解否。
      

  4.   

    这个我当然明白
    只是不懂  invoke为什么会快 而且不卡
    开线程反而一顿一顿的在电脑上开1线程的invoke和直接开线程 结果是invoke快上30%