【发布时间】:2013-07-17 08:51:46
【问题描述】:
有 5 个线程在无限循环中运行。
其中2个会在队列不为空时发送消息。
其中 4 个将在 5 分钟内持续发送心跳。
其中1个是从另一个来源请求数据。
当它使用 100% 的 CPU 时,我无法在窗口中使用任何其他应用程序。整个窗口变得很慢。
编辑:Sleep 可以放在 WaitOne 之后吗?
if(autoEvent.WaitOne())
{
}
else
{
}
Thread.Sleep(100);
sleep 可以放在作为 ZeroMQ 的subscriber.Recv() 之后吗?
如果没有 Recv(),所有线程我都会休眠,但是有一个线程我不敢在只有 client.Send 的实时数据馈送线程中休眠,只有一个线程会导致 100% 吗?
【问题讨论】:
-
贴一些代码,特别是无限循环和当队列不为空时
-
问得好,但我觉得主要是MS Win Machines的问题,我的Win7真的很重,好像是在玩CPU,用了1G!在所有服务都已禁用时的内存。
标签: c# multithreading windows-services threadpool