私はこのコードを実行していますが、大部分は何もしていませんが、相当量のCPUを使用しています。条件が満たされるまで操作をブロックする方法はありますか?
while (this.IsListening)
{
while (this.RecievedMessageBuffer.Count > 0)
{
lock (this.RecievedMessageBuffer)
{
this.RecievedMessageBuffer[0].Reconstruct();
this.RecievedMessageBuffer[0].HandleMessage(messageHandler);
this.RecievedMessageBuffer.RemoveAt(0);
}
}
}
条件が満たされるまでブロックするにはどうすればよいですか?
'Thread.Sleep()'? –
Thread.Sleep()はUIもブロックします。 –
@RanhiruCoorayいいえ、それはほとんど常に*間違った答えです。 Markによって提案されたWaitHandleのように、この仕事に専念する構造があります。 http://stackoverflow.com/questions/9417260/when-is-it-sensible-to-use-thread-sleep –