C#多线程问题(求救) 大家好.我用C#开发了一个多线程程序,但这个多线程在Debug编译下可以并发出来,可是在Release下却不可以.是不是在Release模式下编译一些代码被编译器"优化"了? 我该怎么做才可以在Release模式下并发出多线程工作?还有一个大问题.为什么我的多线程在Debug模式下开了大概20个线程CPU就被100%使用了(电脑4是个CPU的,功能很强大的)?C#对多线程的并发数是怎么控制的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1)debug下运行有个托管exe,这个可从任务管理器看到2)在线程中适当得Sleep,特别是没有任务时,可以降低CPU占用3)线程池(ThreadPool)管理可以更高效率 ...是不是在Release模式下编译一些代码被编译器"优化"了?虽然有优化,但因该不会影响多线程。可能要有代码才能分析。...C#对多线程的并发数是怎么控制的CLR的线程池倒是有个最大线程数的限制,不过如果你用new Thread()而不用线程池倒没有什么限制。...为什么我的多线程在Debug模式下开了大概20个线程CPU就被100%使用了如果你的线程是计算密集型的,4个线程就可以让4核的CPU满负荷了。如果你的线程大部分等在IO等待,事件等待上,则不应该出现100%CPU状况。 关于CPU利用率,线程的占用跟CPU的线程是对应的如果是4枚处理器,处理器是单核的,4个满负荷的单线程应用令CPU占用达到100%如果是4枚处理器,处理器是双核的,8个满负荷的单线程应用令CPU占用达到100%如果是2枚处理器,处理器是四核的,8个满负荷的单线程应用令CPU占用达到100%单线程应用可以用MS的计算器来模拟,运算一个大数的阶乘即可 如果是4枚处理器,处理器是六核的,而且支持超线程,48个满负荷的单线程应用令CPU占用达到100% 线程执行过程中,适当加上sleep,可以降低CPU占用。 哎.谢谢大家了.我的线程都是在等待网络的返回数据.有办法让在等待的Socket出来,必要时再接收吗?记得是几是个Socket一起工作的. 看你问题是想用多线程来接收SOCKET数据吧,我前段时间做过这方面的东西,可能具体说说你的问题或者说流程我感觉是你的流程出了问题,我的程序也是8个客户端,1周不关,程序占CPU30左右 在ASP.NET中如何给TreeView控件添加双击事件? ImageButton的onclick为什么不能调用脚本函数 不规则窗口最大化时遮挡任务栏---在线求助 请问一下,c#.net中如何实现评论的第几楼的循环? 给我个思路吧,大家 数据库恢复问题 我想在xml文件中插入一条记录,应该如何做? 安装的vs.net中的“工具箱”里为什么没有“数据”组件? 十万火急!!! 如何通过代理调用webservice? 第一次IIS发布WebService出错,求大佬帮忙看下 c#帮助文档!!! .net的FrameWork是否相当于java的虚拟机
2)在线程中适当得Sleep,特别是没有任务时,可以降低CPU占用
3)线程池(ThreadPool)管理可以更高效率
虽然有优化,但因该不会影响多线程。可能要有代码才能分析。...C#对多线程的并发数是怎么控制的
CLR的线程池倒是有个最大线程数的限制,不过如果你用new Thread()而不用线程池倒没有什么限制。...为什么我的多线程在Debug模式下开了大概20个线程CPU就被100%使用了
如果你的线程是计算密集型的,4个线程就可以让4核的CPU满负荷了。
如果你的线程大部分等在IO等待,事件等待上,则不应该出现100%CPU状况。
线程执行过程中,适当加上sleep,可以降低CPU占用。
必要时再接收吗?记得是几是个Socket一起工作的.
我感觉是你的流程出了问题,我的程序也是8个客户端,1周不关,程序占CPU30左右