class Program
{
public static void ThreadFunction(object state)
{
string str = state as string;
Console.WriteLine("当前线程的唯一标识符=" + Thread.CurrentThread.ManagedThreadId);
Console.WriteLine("当前线程的参数=" + str);
}
static void Main(string[] args)
{
//起线程方式
Console.WriteLine("主线程的唯一标识符=" + Thread.CurrentThread.ManagedThreadId);
//方式1
Thread t1 = new Thread(ThreadFunction);
//委托不带参数写法:Thread t2 = new Thread(new ThreadStart(ThreadFunction));
//委托带参数写法: Thread t2 = new Thread(new ParameterizedThreadStart(ThreadFunction));
t1.Start("我是t1");
//方式2
ThreadPool.QueueUserWorkItem(ThreadFunction, "我是t2");
//方式3
Task.Factory.StartNew(ThreadFunction, "我是t3");
//方式4
Task.Run(()=> {
Console.WriteLine("当前线程的唯一标识符=" + Thread.CurrentThread.ManagedThreadId);
});
//方式5
Action<object> t5 = ThreadFunction;
t5.BeginInvoke("我是t5",null,null);
//终止线程
//Thread.CurrentThread.Abort();
//将当前线程挂起指定的时间。
//Thread.Sleep(2000);
Console.ReadLine();
}
}
运行结果