fork download
  1. using System;
  2. using System.Threading;
  3.  
  4. public class Test
  5. {
  6. public static void Main()
  7. {
  8. var mre = new ManualResetEvent(false);
  9.  
  10. for (int i = 0; i < 10; i++)
  11. ThreadPool.QueueUserWorkItem(
  12. (o) =>
  13. {
  14. Console.WriteLine("{0} Starting to Wait", Thread.CurrentThread.ManagedThreadId);
  15. if (mre.WaitOne(10000))
  16. Console.WriteLine("{0} yay", Thread.CurrentThread.ManagedThreadId);
  17. else
  18. Console.WriteLine("{0} should not happen", Thread.CurrentThread.ManagedThreadId);
  19. });
  20.  
  21. Thread.Sleep(5000);
  22. Console.WriteLine("Releasing");
  23. mre.Set();
  24. mre.Reset();
  25. Thread.Sleep(10000);
  26. }
  27. }
Time limit exceeded #stdin #stdout 5s 51120KB
stdin
Standard input is empty
stdout
1 Starting to Wait
2 Starting to Wait
3 Starting to Wait
4 Starting to Wait
5 Starting to Wait
6 Starting to Wait
7 Starting to Wait
8 Starting to Wait
9 Starting to Wait
10 Starting to Wait
Releasing
1 should not happen
2 should not happen
3 should not happen
4 should not happen
5 should not happen