我写的Winform程序一登陆进入主界面,就完蛋了..... 我写的Winform程序一登陆进入主界面,CPU占有率98%啊!~我检查过了,只有一个等待接受的Socket,其他都好好的,我不知道怎么检查啊!还有人能帮帮我啊,给我点建议啊!~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那應該就是了socket的問題了,你再查查,或者把代碼貼出來看看。 你这个等待接受的Socket肯定是个死循环。一直在等待。 private System.Threading.ManualResetEvent allDone = new ManualResetEvent(false);allDone.reset()或者alldone.waitone()试试 支持楼上的代码.private System.Threading.ManualResetEvent test = new ManualResetEvent(false);test.reset();||test.waitone() 新建线程执行Socket的监听代码... while( true ){if( yoursocket.Available ){ ///do your work}else Threading.Sleep( 20 );}不要小看了这20毫秒,它可以让你的cpu去做其它的事,而不是只在这里等待,如果cpu占用率还是高的话,试着在程序中把你的线程优先级调低。 是否开过线程了,若启用了多线程,请注意加入Sleep(1);哪怕1ms也好 C#隐藏进程 如何调用另一窗体的textbox的值 请教:如何向XML结构中插入数据? 生成装配件后有一个 . pdb的同名文件,请问这是什么文件? 200分求教WinForm如何打开一个新窗体得同步关闭当前窗体。另求C/S结构程序设计方式 [新手请教] //如何判断某个目录下是否存在文件? C#执行Windows补丁包程序 如何将一个现有的窗体变为MDI子窗体? 高分讨论:使用C#开发OLTP项目优缺点征集!(答者必得分) help_在调试中产生了.net frame work compiler错误!! 随便输入字符串如何将其分割成单个的?或者是如何对输入字符串排序成a-z的顺序
allDone.reset()或者alldone.waitone()试试
private System.Threading.ManualResetEvent test = new ManualResetEvent(false);
test.reset();||test.waitone()
{
if( yoursocket.Available )
{
///do your work
}
else
Threading.Sleep( 20 );
}
不要小看了这20毫秒,它可以让你的cpu去做其它的事,而不是只在这里等待,如果cpu占用率还是高的话,试着在程序中把你的线程优先级调低。