[WinForms] Fix #18506 ActiveTracker, do not propagate message to control when it...
[mono-project.git] / mono / tests / monitor-wait-abort.cs
blobdadfa5639200b80c209f8323acb5ff26d823b3b7
1 using System;
2 using System.Threading;
4 public class Program {
5 const int num_threads = 10;
6 public static Barrier barrier = new Barrier (num_threads + 1);
8 public static void ThreadFunc ()
10 object lock_obj = new object ();
11 lock (lock_obj) {
12 try {
13 barrier.SignalAndWait ();
14 Monitor.Wait (lock_obj);
15 } catch (ThreadAbortException) {
16 Thread.ResetAbort ();
21 public static void Main (string[] args)
23 Thread[] tarray = new Thread [num_threads];
25 for (int i = 0; i < num_threads; i++) {
26 tarray [i] = new Thread (new ThreadStart (ThreadFunc));
27 tarray [i].Start ();
30 barrier.SignalAndWait ();
32 for (int i = 0; i < num_threads; i++)
33 tarray [i].Abort ();
35 for (int i = 0; i < num_threads; i++)
36 tarray [i].Join ();