diff --git a/CryptoExchange.Net/ExtensionMethods.cs b/CryptoExchange.Net/ExtensionMethods.cs
index 424d70c..c015933 100644
--- a/CryptoExchange.Net/ExtensionMethods.cs
+++ b/CryptoExchange.Net/ExtensionMethods.cs
@@ -223,6 +223,16 @@ namespace CryptoExchange.Net
}
}
+ ///
+ /// Wait one async
+ ///
+ ///
+ ///
+ public static Task WaitOneAsync(this WaitHandle handle)
+ {
+ return handle.WaitOneAsync(-1, CancellationToken.None);
+ }
+
///
/// Wait one async
///
diff --git a/CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs b/CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs
index 29f8d11..2ab4723 100644
--- a/CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs
+++ b/CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs
@@ -352,7 +352,7 @@ namespace CryptoExchange.Net.Sockets
if (_closing)
break;
- _sendEvent.WaitOne();
+ await _sendEvent.WaitOneAsync().ConfigureAwait(false);
if (_closing)
break;
@@ -365,7 +365,8 @@ namespace CryptoExchange.Net.Sockets
DateTime? start = null;
while (MessagesSentLastSecond() >= RatelimitPerSecond)
{
- start = DateTime.UtcNow;
+ if (start == null)
+ start = DateTime.UtcNow;
await Task.Delay(10).ConfigureAwait(false);
}