public void Increase() { Console.WriteLine("Semaphore:Increase {0} -> {1}", m_value, m_value + 1); m_value++; if (m_value <= 0) { MicroThread t = m_suspendedThreads.Dequeue(); t.WakeUp(); } }