多线程项目实例

1、Task使用启动方式

    static void Method1()
        {
            Task task1 = new Task(() =>
              {
                  //在这里写要具体干的事
                  Console.WriteLine($"Task1开启的线程ID={Thread.CurrentThread.ManagedThreadId}");
              });
            task1.Start();//适合线程开启和执行是分开的情况
            Console.WriteLine("----------------------");
            Console.Read();
        }
    static void Method2()
        {
            Task task1 = Task.Run(() =>
            {
                //在这里写要具体干的事
                Console.WriteLine($"Task1开启的线程ID={Thread.CurrentThread.ManagedThreadId}");
            });            
            Console.WriteLine("----------------------");
            Console.Read();
        }
     static void Method3()
        {
            Task task1 = Task.Factory.StartNew(() =>
            {
                //在这里写要具体干的事
                Console.WriteLine($"Task1开启的线程ID={Thread.CurrentThread.ManagedThreadId}");
            });
            Console.WriteLine("----------------------");
            Console.Read();
        }

2、Task使用阻塞方式和任务延续

        static void Method4()
        {
            Task task1 = new Task(() =>
            {
                //在这里写要具体干的事
                Thread.Sleep(1000);
                Console.WriteLine($"Task1开启的线程ID={Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToLongTimeString()}");

            });
            task1.Start();
            Task task2 = new Task(() =>
            {
                //在这里写要具体干的事
                Thread.Sleep(3000);
                Console.WriteLine($"Task2开启的线程ID={Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToLongTimeString()}");

            });
            
            task2.Start();
            //逐个等待 执行顺序:task1->task2->mainTask
            //task1.Wait();
            //task2.Wait();
            //换一个方式和上述方式一致
            //Task.WaitAll(task1, task2);
            //第三种方式
            Task.WaitAny(task1, task2); //执行顺序: task1->mainTask->task2
            Console.WriteLine("----------------------");
            Console.Read();
        }

 

posted @ 2025-06-27 14:49  关陈七  阅读(6)  评论(0)    收藏  举报