Как заблокировать операцию до выполнения условия?

Я запускаю этот код, и он использует значительную часть ЦП, хотя большую часть времени он абсолютно ничего не делает.

while (this.IsListening)
{
    while (this.RecievedMessageBuffer.Count > 0)
    {
        lock (this.RecievedMessageBuffer)
        {
            this.RecievedMessageBuffer[0].Reconstruct();
            this.RecievedMessageBuffer[0].HandleMessage(messageHandler);
            this.RecievedMessageBuffer.RemoveAt(0);
        }
    }
}

Как лучше всего блокировать до тех пор, пока не будет выполнено условие?

6
задан John Saunders 29 December 2014 в 16:32
поделиться