public void CloseKernel() { krnGateway.OnLogMessage -= new LogEvent(m_OnLogMessage); krnGateway.OnNewFile -= new FileEvent(m_OnNewFile); krnGateway.OnNewSharedFile -= new FileEvent(m_OnNewSharedFile); krnGateway.OnRemovedSharedFile -= new FileEvent(m_OnRemovedSharedFile); krnGateway.OnNewUpload -= new ClientEvent(m_OnNewUpload); krnGateway.OnNewSource -= new SourceEvent(m_OnNewSource); krnGateway.OnNewServer -= new ServerEvent(m_OnNewServer); krnGateway.OnDeleteServer -= new IPEvent(m_OnDeletedServer); krnGateway.OnNewSearched -= new SearchEvent(m_OnNewSearched); krnGateway.OnModifiedSearched -= new SearchEvent(m_OnModifiedSearched); krnGateway.OnEndSearch -= new EndSearchEvent(m_OnEndSearch); krnGateway.OnNewSearchTab -= new SearchTabEvent(m_OnNewSearchTab); krnGateway.OnNewSearchProgress -= new SearchProgressEvent(m_OnSearchProgress); krnGateway.OnNewChatMessage -= new SourceEvent(m_OnNewChatMessage); RefreshThread.Abort(); if (m_isLocal) { krnGateway.CloseKernel(); } }