static void Main () { var testTimeout = new TestTimeout (); testTimeout.Start (); for (int i = 0; i < Math.Max (1, Environment.ProcessorCount / 2); ++i) { // for (int i = 0; i < 4; ++i) { var t = new Thread (BackgroundNoise); t.IsBackground = true; t.Start (); } const int TOTAL_ITERATIONS = 100; for (int i = 0; i < TOTAL_ITERATIONS; ++i) { var ad = AppDomain.CreateDomain ("domain_" + i); ad.DoCallBack (new CrossAppDomainDelegate (AllocStuff)); AppDomain.Unload (ad); Console.Write ("."); if (i > 0 && i % 20 == 0) Console.WriteLine (); if (!testTimeout.HaveTimeLeft ()) { var finishTime = DateTime.UtcNow; var ranFor = finishTime - testTimeout.StartTime; Console.WriteLine ("Will run out of time soon. ran for {0}, finished {1}/{2} iterations", ranFor, i+1, TOTAL_ITERATIONS); } } Console.WriteLine ("\ndone"); }
static void Main() { var testTimeout = new TestTimeout(); testTimeout.Start(); for (int i = 0; i < Math.Max(1, Environment.ProcessorCount / 2); ++i) { // for (int i = 0; i < 4; ++i) { var t = new Thread(BackgroundNoise); t.IsBackground = true; t.Start(); } const int TOTAL_ITERATIONS = 100; for (int i = 0; i < TOTAL_ITERATIONS; ++i) { var ad = AppDomain.CreateDomain("domain_" + i); ad.DoCallBack(new CrossAppDomainDelegate(AllocStuff)); AppDomain.Unload(ad); Console.Write("."); if (i > 0 && i % 20 == 0) { Console.WriteLine(); } if (!testTimeout.HaveTimeLeft()) { var finishTime = DateTime.UtcNow; var ranFor = finishTime - testTimeout.StartTime; Console.WriteLine("Will run out of time soon. ran for {0}, finished {1}/{2} iterations", ranFor, i + 1, TOTAL_ITERATIONS); } } Console.WriteLine("\ndone"); }
static void Main(string[] args) { var testTimeout = new TestTimeout(); testTimeout.Start(); const int TOTAL_ITERATIONS = 2; for (int j = 0; j < TOTAL_ITERATIONS; j++) { count = 0; List <Thread> threads = new List <Thread>(); List <System.Timers.Timer> timers = new List <System.Timers.Timer>(); for (int i = 0; i < num_threads; i++) { Thread t3 = new Thread(delegate() { UseMemory(); }); t3.Start(); System.Timers.Timer timer = new System.Timers.Timer(); timer.Elapsed += Timer_Elapsed; timer.AutoReset = false; timer.Interval = 1000; timer.Start(); timers.Add(timer); } for (int i = 0; i < 4000; i++) { System.Timers.Timer timer = new System.Timers.Timer(); timer.Elapsed += Timer_Elapsed; timer.AutoReset = false; timer.Interval = 500; timer.Start(); timers.Add(timer); } lock (count_lock) { while (count < num_threads) { Console.Write("."); Monitor.Wait(count_lock); } } foreach (var t in threads) { t.Join(); } Console.WriteLine(); if (!testTimeout.HaveTimeLeft()) { var finishTime = DateTime.UtcNow; var ranFor = finishTime - testTimeout.StartTime; Console.WriteLine("Will run out of time soon. ran for {0}, finished {1}/{2} iterations", ranFor, j + 1, TOTAL_ITERATIONS); } } Console.WriteLine("done"); }
static void Main (string[] args) { var testTimeout = new TestTimeout (); testTimeout.Start (); const int TOTAL_ITERATIONS = 2; for (int j = 0; j < TOTAL_ITERATIONS; j++) { count = 0; List<Thread> threads = new List<Thread>(); List<System.Timers.Timer> timers = new List<System.Timers.Timer>(); for (int i = 0; i < num_threads; i++) { Thread t3 = new Thread (delegate () { UseMemory(); }); t3.Start (); System.Timers.Timer timer = new System.Timers.Timer(); timer.Elapsed += Timer_Elapsed; timer.AutoReset = false; timer.Interval = 1000; timer.Start(); timers.Add(timer); } for (int i = 0; i < 4000; i++) { System.Timers.Timer timer = new System.Timers.Timer(); timer.Elapsed += Timer_Elapsed; timer.AutoReset = false; timer.Interval = 500; timer.Start(); timers.Add(timer); } lock (count_lock) { while (count < num_threads) { Console.Write ("."); Monitor.Wait(count_lock); } } foreach (var t in threads) { t.Join(); } Console.WriteLine (); if (!testTimeout.HaveTimeLeft ()) { var finishTime = DateTime.UtcNow; var ranFor = finishTime - testTimeout.StartTime; Console.WriteLine ("Will run out of time soon. ran for {0}, finished {1}/{2} iterations", ranFor, j+1, TOTAL_ITERATIONS); } } Console.WriteLine ("done"); }