社区
C#
帖子详情
C#多线程问题(求救)
Dong
2008-12-06 01:40:22
大家好.
我用C#开发了一个多线程程序,但这个多线程在Debug编译下可以并发出来,可是在Release下却不可以.是不是在Release模式下编译一些代码被编译器"优化"了? 我该怎么做才可以在Release模式下并发出多线程工作?
还有一个大问题.为什么我的多线程在Debug模式下开了大概20个线程CPU就被100%使用了(电脑4是个CPU的,功能很强大的)?C#对多线程的并发数是怎么控制的?
...全文
426
23
打赏
收藏
C#多线程问题(求救)
大家好. 我用C#开发了一个多线程程序,但这个多线程在Debug编译下可以并发出来,可是在Release下却不可以.是不是在Release模式下编译一些代码被编译器"优化"了? 我该怎么做才可以在Release模式下并发出多线程工作? 还有一个大问题.为什么我的多线程在Debug模式下开了大概20个线程CPU就被100%使用了(电脑4是个CPU的,功能很强大的)?C#对多线程的并发数是怎么控制的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ws_hgo
2008-12-27
打赏
举报
回复
点击结贴
然后给分
一游
2008-12-27
打赏
举报
回复
看你问题是想用多线程来接收SOCKET数据吧,我前段时间做过这方面的东西,可能具体说说你的问题或者说流程
我感觉是你的流程出了问题,我的程序也是8个客户端,1周不关,程序占CPU30左右
Dong
2008-12-27
打赏
举报
回复
还有个问题,怎么结帖? 点给分框都没反应的,而且有个专家排列的网页不停的在动来动去的,这些并不是我们需要的啊.
说实话,都2年没来这里了,因为觉得网站越来越差了,搞了很多没必要的东西.
特别有一段时间,连那里进入论坛都不知道,那个流程简直.......
其实我觉得技术论坛不要搞到太商业化,现在广告一堆又一堆.
Dong
2008-12-27
打赏
举报
回复
总技术分排名:678
--------------
我很惊讶这个排名问出的问题。
-----------------------------------------
技术和编程能力不是100%挂钩的,问题低级我也敢问出来,这就是我的能力了.
half_bucket
2008-12-08
打赏
举报
回复
mark
yagebu1983
2008-12-08
打赏
举报
回复
线程池!!
也得用信号量!!
much0726
2008-12-08
打赏
举报
回复
总技术分排名:678
--------------
我很惊讶这个排名问出的问题。
jfd198512
2008-12-08
打赏
举报
回复
学习! 我是新手只能先看看大家的思想! 呵呵
Dong
2008-12-08
打赏
举报
回复
哎.谢谢大家了.
我的线程都是在等待网络的返回数据.有办法让在等待的Socket出来,
必要时再接收吗?记得是几是个Socket一起工作的.
xiaozhimin1978
2008-12-07
打赏
举报
回复
[Quote=引用 6 楼 hornbills 的回复:]
关于CPU利用率,线程的占用跟CPU的线程是对应的
如果是4枚处理器,处理器是单核的,4个满负荷的单线程应用令CPU占用达到100%
如果是4枚处理器,处理器是双核的,8个满负荷的单线程应用令CPU占用达到100%
如果是2枚处理器,处理器是四核的,8个满负荷的单线程应用令CPU占用达到100%
单线程应用可以用MS的计算器来模拟,运算一个大数的阶乘即可
[/Quote]
支持
一个线程只要没有等待状态,基本上会让一个核的使用率占光,关键问题不在线程多少,而在线程有没有休息。
flyjimi
2008-12-06
打赏
举报
回复
[Quote=引用楼主 UPCC 的帖子:]
大家好.
我用C#开发了一个多线程程序,但这个多线程在Debug编译下可以并发出来,可是在Release下却不可以.是不是在Release模式下编译一些代码被编译器"优化"了? 我该怎么做才可以在Release模式下并发出多线程工作?
还有一个大问题.为什么我的多线程在Debug模式下开了大概20个线程CPU就被100%使用了(电脑4是个CPU的,功能很强大的)?C#对多线程的并发数是怎么控制的?
[/Quote]
线程执行过程中,适当加上sleep,可以降低CPU占用。
jiang_jiajia10
2008-12-06
打赏
举报
回复
线程池
GTX280
2008-12-06
打赏
举报
回复
在代码中加上[MTAThread]
deserveit
2008-12-06
打赏
举报
回复
建议使用线程池
lihuyin
2008-12-06
打赏
举报
回复
mark
tinghai_xu
2008-12-06
打赏
举报
回复
贴出代码吧
hornbills
2008-12-06
打赏
举报
回复
如果是4枚处理器,处理器是六核的,而且支持超线程,48个满负荷的单线程应用令CPU占用达到100%
hornbills
2008-12-06
打赏
举报
回复
关于CPU利用率,线程的占用跟CPU的线程是对应的
如果是4枚处理器,处理器是单核的,4个满负荷的单线程应用令CPU占用达到100%
如果是4枚处理器,处理器是双核的,8个满负荷的单线程应用令CPU占用达到100%
如果是2枚处理器,处理器是四核的,8个满负荷的单线程应用令CPU占用达到100%
单线程应用可以用MS的计算器来模拟,运算一个大数的阶乘即可
liningln0
2008-12-06
打赏
举报
回复
[Quote=引用 2 楼 gomoku 的回复:]
...是不是在Release模式下编译一些代码被编译器"优化"了?
虽然有优化,但因该不会影响多线程。可能要有代码才能分析。
...C#对多线程的并发数是怎么控制的
CLR的线程池倒是有个最大线程数的限制,不过如果你用new Thread()而不用线程池倒没有什么限制。
C# code...为什么我的多线程在Debug模式下开了大概20个线程CPU就被100%使用了
如果你的线程是计算密集型的,4个线程就可以让4核的CPU满负荷了。
如果你的…
[/Quote]
还有,线程的多少不是问题。关键是线程的处理上,我以前做过一个项目,高峰的时候有进30个线程,不过处理数据的只有3个,其他都是显示或者数据库操作。
所以主要是数据计算上的同时运行线程不能太多。。
zzuyongp
2008-12-06
打赏
举报
回复
建议线程池 4核最好别并发超过10个线程
加载更多回复(3)
只能显示一部分
求救
下面是一个 splitContainer1 左右各百分之五十宽.想在中间加一个panel1, 类似于一个 "回"字,为什么这个panel1只能看到一部分在最上层呢?另一部分跑到 splitContainer1 下面去了,新手,真心求教~
放这个用鼠标拖放是很不容易放正的这样:
先把panel放外面,然后用键盘控制他的位置就很容易放正的
问题
解决了,是因为assembly未加载成功。
现在有另一个
问题
,我jsp页面里嵌套activex,第一次能显示出来,等我
如何三个月从零基础到
C#
中级程序员
零基础,也还是要有点基本基础,至少能看懂简单E文,有高中数学基础,有基本电脑能力。第一阶段,参考《
C#
入门经典》前九章,拉拉控件。熟悉基本概念,代码要纯粹手打和总结。做个基本的只有一个表格的数据库,也是拉几个控件的事情,这期间得研究下载一个小型数据库系统,数据库系统无非是权限管理加数据显示。权限管理:研究并存档标准的登陆验证类,以便下次开发数据库用现成的类。数据显示:直接采用那个DEV的第三方控件,这个叫datagrid的控件使用方法很多,应用部分常用功能到你的数据库系统中,并总结验证好网上搜索得来的技巧,
Unity Native Crash修复原理:从SIGSEGV日志定位
C#
根因
Native Crash是Unity项目在Android/iOS真机上闪退的核心难题,本质是托管堆与原生堆之间内存契约的破裂,常见于
多线程
竞态、悬垂指针和ABI错配。其技术关键在于理解IL2CPP编译机制与信号处理原理,通过符号化(Symbolication)将`libil2cpp.so + 0x1a7f3c`等十六进制偏移映射回C++函数及对应
C#
调用链,进而实现从崩溃日志到源码行号的精准归因。该能力直接支撑Crash率优化、插件兼容性验证与线上稳定性治理,广泛应用于TA调试、客户端维护及Unity底层原
多个循环体如何同时进行
多个循环体同时进行该怎么写?例如,同时读取两个同样大小的图片,同时读取他们相同坐标的信息
这个程序,我以前用过,那个时候,倒是可以,现在就不行了
在WORD2007中,点击“视图”,然后选中 “文档结构图”,可以看到:文本区域的左侧,出现了一个文档结构图,它有关闭按钮,而且 它和右侧的文本可以拖动中间的分割线 调整各自的大小。
这个界面,在
C#
2005中,使用什么控件来完成呢?
最后在弄
C#
里的treeview。其中有一个功能一直做不出来。就是编辑节点上的
Windows Phone 7开发一月谈(7)
xaml中的xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml什么意思? 如何获取当前点击按钮的属性 无法打开designer编辑了,求教怎么解决? 网络堵塞? 连入网络是什么有关系吗? 代码举例:数据库消息事物~ 在viewmodel里要怎么接收url传的参呢 点击back按钮后如何提示【是否退出系统?】 ...
C#
111,129
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章