private void OnMessage(IMessageParser parser) { ByteMessageParser bytes = new ByteMessageParser(parser.Topic, parser.ParseBytes(), parser.EndPoint); bool discard = false; lock (_lock) { if (_msgQueue.Count >= _maxSize) { discard = true; } else { _msgQueue.Add(bytes); Monitor.Pulse(_lock); } } OnTopicMessage discardMsg = DiscardEvent; if (discard && discardMsg != null) { discardMsg(bytes); } }
private void OnMessage(IMessageParser parser) { ByteMessageParser bytes = new ByteMessageParser(parser.Topic, parser.ParseBytes(), parser.EndPoint); bool discard = false; lock (_lock) { if (_msgQueue.Count >= _maxSize) { discard = true; } else { _msgQueue.Add(bytes); Monitor.Pulse(_lock); } } OnTopicMessage discardMsg = DiscardEvent; if (discard && discardMsg != null) { discardMsg(bytes); } }