public ThreadPooling() { Console.WriteLine("***********Using the ThreadPool***********"); Console.WriteLine("Currently Executing in Thread {0}", Thread.CurrentThread.ManagedThreadId); RandomIntervalPrinter printer = new RandomIntervalPrinter(10, 3); WaitCallback workItem = new WaitCallback(ExecutePrinter); for (int i = 0; i < 10; i++) ThreadPool.QueueUserWorkItem(workItem, printer); Console.WriteLine("All tasks queued"); }
public ConcurrencyEmulator() { Console.WriteLine("********Studying Concurrency Issues********"); RandomIntervalPrinter printer = new RandomIntervalPrinter(10, 5); Thread[] threads = new Thread[10]; for (int i = 0; i < threads.Length; i++) { threads[i] = new Thread(new ThreadStart(printer.Execute)); threads[i].Name = string.Format("Worker thread #{0}", i); } foreach (Thread thread in threads) thread.Start(); }