程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 多個線程一直跑著While(true),

C# 多個線程一直跑著While(true),

編輯:C#入門知識

C# 多個線程一直跑著While(true),


      在使用多線程的時候,開了多個線程一直在While(true),會造成CPU占用很高。這時候要在線程內加入一句Thread.Sleep(1),讓他稍微睡一下。就不會消耗那麼多CPU了。

       代碼:

   

Thread receThread=new Thread(
delegate()
{
while (socketFlag)
{
if(SocketClient==null||!SocketClient.Connected ||SocketClient.Available<=0)
{
continue;
}

length = SocketClient.Receive(bytes, 0, bytes.Length, SocketFlags.None);

if (length > 0)
{
serialPortCls.SendData(bytes, length);
if (textBox.InvokeRequired)
{
textBox.Invoke(new Action<string>(s =>
{
textBox.AppendText(s + Environment.NewLine);
textBox.SelectionStart = textBox.TextLength;
textBox.ScrollToCaret();

}), Encoding.ASCII.GetString(bytes));
}
else
{
textBox.AppendText(System.Text.Encoding.ASCII.GetString(bytes) + Environment.NewLine);
textBox.SelectionStart = textBox.TextLength;
textBox.ScrollToCaret();

}


}
Thread.Sleep(1); //睡1ms再繼續干活,就不會消耗那麼多CPU了
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved