diff --git a/CryptoExchange.Net/OrderBook/SymbolOrderBook.cs b/CryptoExchange.Net/OrderBook/SymbolOrderBook.cs index d4a6df3..84df703 100644 --- a/CryptoExchange.Net/OrderBook/SymbolOrderBook.cs +++ b/CryptoExchange.Net/OrderBook/SymbolOrderBook.cs @@ -27,7 +27,7 @@ namespace CryptoExchange.Net.OrderBook private bool _stopProcessing; private Task? _processTask; - private readonly AutoResetEvent _queueEvent; + private readonly AsyncResetEvent _queueEvent; private readonly ConcurrentQueue _processQueue; private readonly bool _validateChecksum; @@ -205,7 +205,7 @@ namespace CryptoExchange.Net.OrderBook Id = id; processBuffer = new List(); _processQueue = new ConcurrentQueue(); - _queueEvent = new AutoResetEvent(false); + _queueEvent = new AsyncResetEvent(false, true); _validateChecksum = options.ChecksumValidationEnabled; Symbol = symbol; @@ -541,11 +541,11 @@ namespace CryptoExchange.Net.OrderBook Status = OrderBookStatus.Synced; } - private void ProcessQueue() + private async Task ProcessQueue() { while (Status != OrderBookStatus.Disconnected) { - _queueEvent.WaitOne(); + await _queueEvent.WaitAsync().ConfigureAwait(false); while (_processQueue.TryDequeue(out var item)) {