private void Messagec(MessageEventArgs e) { do { try { OnMessage?.Invoke(this, e); } catch (Exception ex) { #if COMPAT Log.Error(ex.ToString()); #else ex.Log(); #endif Error("An exception has occurred during an OnMessage event.", ex); } lock (_forMessageEventQueue) { if (_messageEventQueue.Count == 0 || _readyState != WebSocketState.Open) { _inMessage = false; break; } e = _messageEventQueue.Dequeue(); } } while (true); }
private void Messages(MessageEventArgs e) { try { OnMessage?.Invoke(this, e); } catch (Exception ex) { #if COMPAT Log.Error(ex.ToString()); #else ex.Log(); #endif Error("An exception has occurred during an OnMessage event.", ex); } lock (_forMessageEventQueue) { if (_messageEventQueue.Count == 0 || _readyState != WebSocketState.Open) { _inMessage = false; return; } e = _messageEventQueue.Dequeue(); } ThreadPool.QueueUserWorkItem(state => Messages(e)); }
private void EnqueueToMessageEventQueue(MessageEventArgs e) { lock (_forMessageEventQueue) _messageEventQueue.Enqueue(e); }