public virtual void Close() { Trace.Call(); var protocolManager = ProtocolManager; if (protocolManager == null) { #if LOG4NET _Logger.WarnFormat( "{0}.Close(): ProtocolManager is null, bailing out!", this ); #endif return; } ThreadPool.QueueUserWorkItem(delegate { try { protocolManager.CloseChat( Frontend.FrontendManager, ChatModel ); } catch (Exception ex) { Frontend.ShowException(ex); } }); }