From 2ece04dd58f7524e4d50447fe1813d1c3ef7e5d4 Mon Sep 17 00:00:00 2001 From: Jkorf Date: Tue, 25 Jan 2022 13:17:25 +0100 Subject: [PATCH] Refactored use of AutoResetEvent to AsyncResetEvent in SymbolOrderBook --- CryptoExchange.Net/OrderBook/SymbolOrderBook.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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)) {