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(); } }
相关文章推荐
- c# 线程启动while(true) 死循环,里边的return导致线程退出情况,查错
- boost::thread之while(true)型线程终结方法
- 防止线程退出的几种方案-不再while(true)
- C# bool true, false 操作符重载,用在 if, while等语句中
- boost::thread之while(true)型线程终结方法
- C#中“貌似”跳出while(true)死循环
- boost::thread之while(true)型线程终结方法
- C#中“貌似”跳出while(true)死循环
- C# 跨线程调用控件
- C#中判断线程的状态
- C# 挂起恢复运行线程代码
- 在C#中跨线程访问Winform控件
- C#线程系列讲座(3):线程池和文件下载服务器
- C# 中的线程安全集合类
- C#线程进程总结(线程调用带参数的方法)
- C#中的线程一(委托中的异步)
- c# winfrom 将当前线程挂起(暂停)指定的时间1秒
- C#线程并发执行的实例[转]
- c#中子线程控制进度条的一个简单例子
- C# 跨线程调用TextBox方法浅析