首页 > 代码库 > 正确停止线程

正确停止线程

using System;using System.Threading;namespace ConsoleApplication1{    class Program    {        static void Main(string[] args)        {            var p = new Program();            p.Do();            p.Stop();        }        CancellationTokenSource cts = new CancellationTokenSource();        void Do()        {            var worker = new Thread(() =>            {                while (true)                {                    if (cts.Token.IsCancellationRequested) //检查是否有取消请求                    {                        //处理收尾工作                        Console.WriteLine("this worker was stoped");                        break;                    }                    Console.WriteLine(DateTime.Now);                    Thread.Sleep(1000);                }            });            worker.Start();        }        void Stop()        {            Console.ReadKey();            cts.Cancel(); //发出取消请求            cts.Token.Register(() => { //进程被停止后通知                Console.WriteLine("worker has been stoped!");            });            Console.ReadKey();        }    }}

 

正确停止线程