diff --git a/websocket-sharp/Net/HttpListener.cs b/websocket-sharp/Net/HttpListener.cs index fe060483..37c83628 100644 --- a/websocket-sharp/Net/HttpListener.cs +++ b/websocket-sharp/Net/HttpListener.cs @@ -451,16 +451,18 @@ namespace WebSocketSharp.Net private void cleanupWaitQueue () { + HttpListenerAsyncResult[] aress = null; lock (_waitQueueSync) { if (_waitQueue.Count == 0) return; - var ex = new ObjectDisposedException (GetType ().ToString ()); - foreach (var ares in _waitQueue) - ares.Complete (ex); - + aress = _waitQueue.ToArray (); _waitQueue.Clear (); } + + var ex = new ObjectDisposedException (GetType ().ToString ()); + foreach (var ares in aress) + ares.Complete (ex); } private void close (bool force)