static void Main(string[] args) { int count = 10; Data data = new Data(); TaskStep0[] step0 = new TaskStep0[count]; TaskStep1[] step1 = new TaskStep1[count]; TaskStep2[] step2 = new TaskStep2[count]; for (int index = 0; index < count; index++) { step0[index] = new TaskStep0(data, index, count); step1[index] = new TaskStep1(data, index, count); step2[index] = new TaskStep2(data, index, count); } TaskEvent event1 = new TaskEvent(); TaskEvent event2 = new TaskEvent(); TaskGraph taskGraph = new TaskGraph(); taskGraph.Create(8); while (true) { ConsoleKeyInfo key = Console.ReadKey(); if (key.Key != ConsoleKey.Escape) { Console.WriteLine(""); for (int index = 0; index < count; index++) { taskGraph.Task(step0[index], event1, null); taskGraph.Task(step1[index], event2, event1); taskGraph.Task(step2[index], null, event2); } taskGraph.Dispatch(); taskGraph.Wait(); continue; } break; } taskGraph.Destroy(); }