/// <summary> /// Notify the KCD that something occurred. Assume mutex is locked. /// </summary> private void NotifyKcdThread() { if (m_thread != null && m_threadWakeUpMsg == null) { m_threadWakeUpMsg = new KcdThreadWakeUpMsg(this); m_thread.PostToWorker(m_threadWakeUpMsg); } }
/// <summary> /// Internal handler for KcdThreadWakeUpMsg. /// </summary> public void HandleKcdThreadWakeUp(KcdThreadWakeUpMsg msg) { lock (m_mutex) { // Clear the posted message reference. Debug.Assert(m_threadWakeUpMsg == msg); m_threadWakeUpMsg = null; } // Notify the KCD that we have something for it. m_thread.HandleKcdNotification(); }