我有以下要求 -
现在,第二个线程必须始终处于活动状态 - 为此我使用了无限 while 循环,如下所示:
private AutoResetEvent messageReset;
private Queue<byte[]> messageQueue;
//thread 2 method
private void ProcessIncomingMessages()
{
messageReset.WaitOne(); //wait for signal
while(true)
{
if (messageQueue.Count > 0)
{
//processing messages
}
}
}
public void SubmitMessageForProcessing(byte[] message){
messageQueue.Enqueue(message); //enqueue message
// Release the thread
messageReset.Set();
}
Run Code Online (Sandbox Code Playgroud)
现在,这个无限 while 循环使 CPU 利用率非常高。有没有什么办法可以降低CPU利用率
注意:我无法添加任何 thread.sleep 语句,因为传入消息将以最小的延迟显示在 UI 上。