static void Main() { Console.WriteLine("Main ThreadID {0}", Thread.CurrentThread.ManagedThreadId); List <Task> tasks = new List <Task>(); TaskScheduler scheduler = new DelayTaskScheduler(); TaskFactory factory = new TaskFactory(scheduler); tasks.Add(factory.StartNew(MyTask1)); tasks.Add(factory.StartNew(MyTask2)); Task.WaitAll(tasks.ToArray()); Console.WriteLine("\nВсе задачи завершены."); }
static void Main() { Console.WriteLine("Main ThreadID {0}", Thread.CurrentThread.ManagedThreadId); TaskScheduler scheduler = new DelayTaskScheduler(); TaskFactory factory = new TaskFactory(scheduler); Task task = factory.StartNew(MyTask); TaskAwaiter awaiter = task.GetAwaiter(); while (!awaiter.IsCompleted) { Console.Write("."); Thread.Sleep(100); } //task.Wait(); // Не вызывать так как в DelayTaskScheduler используется AutoResetEvent Console.WriteLine("\nВсе задачи завершены."); }