static void Main(string[] args) { WaitHandle waitHandle = new ManualResetEvent(true); NameSplitter nameSplitter = new NameSplitter(); NameSplitWorker[] workers = new NameSplitWorker[25]; for(int i = 0; i < workers.Length; i++) { workers[i] = new NameSplitWorker("Worker" + i, waitHandle, _names, nameSplitter); } Console.WriteLine("Press 'q' to quit"); Thread.Sleep(2000); try { Array.ForEach(workers, w => w.Start()); while(Console.ReadKey(true).Key != ConsoleKey.Q) { //spin! } Array.ForEach(workers, w => w.Stop()); } catch(Exception ex) { Console.WriteLine(ex.Message); } }
public NameSplitWorker(string name, WaitHandle waitHandle, string[] names, NameSplitter nameSplitter) : base(name, waitHandle) { _names = names; _nameSplitter = nameSplitter; }