您的位置:首页 > 产品设计 > UI/UE

C# 多个线程一直跑着While(true)

2015-05-27 13:20 183 查看
在使用多线程的时候,开了多个线程一直在While(true),会造成CPU占用很高。这时候要在线程内加入一句Thread.Sleep(1),让他稍微睡一下。就不会消耗那么多CPU了。

代码:

Thread dataThread = new Thread(delegate()
{
while (threadFlag)
{
if (Port != null && Port.IsOpen)
{
length = Port.BytesToRead;
if (length > 0)
{

bytes = new byte[length];
Port.Read(bytes, 0, length);

tcp.SendData(bytes);

if (textBox.InvokeRequired)
{

textBox.Invoke(new Action<string>(s =>
{
textBox.AppendText(s + Environment.NewLine);
textBox.SelectionStart = textBox.TextLength;
textBox.ScrollToCaret();

}), System.Text.Encoding.ASCII.GetString(bytes));

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

}
}

}
Thread.Sleep(1);
}

});
dataThread.IsBackground = true;
dataThread.Name = PortName;
dataThread.Start();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: