Example #1
0
        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Все задачи завершены.");
        }
Example #2
0
        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Все задачи завершены.");
        }