定义专用线程(不使用线程池)的两种方式示例

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;

namespace ConsoleApp1
{
    public class ThreadTest
    {
        //定义专用线程(不使用线程池)的两种方式
        public static void RunTest()
        {
            Console.WriteLine("main thread start...");
            //Thread thread1 = new Thread(Method1); //这种写法是委托简化语法
            Thread thread1 = new Thread(new ParameterizedThreadStart(Method1)); //ParameterizedThreadStart委托接受一个object参数
            thread1.Start(5);

            //Thread thread2 = new Thread(new ThreadStart(Method2));  //ThreadStart委托是无参的
            //thread2.Start();

            Console.WriteLine("main thread:doing other work ......");
            Thread.Sleep(5000);

            thread1.Join();
            //thread2.Join();
            Console.WriteLine("main thread:end.");
            Console.ReadKey();
        }

        private static void Method2()
        {
            Console.WriteLine("Method2,No parameters.");
        }

        private static void Method1(object state)
        {
            //throw new NotImplementedException();
            Console.WriteLine("Method1,state="+state);
        }
    }
}

 

posted @ 2020-03-07 11:38  skybirdzw  阅读(235)  评论(0)    收藏  举报