C# Abort() 多线程运行逻辑

/

Thread t ; 
Thread t2;

t.Abort()执行后,会阻止主线程继续运行,但是不会影响t2线程的执行。
        static void Main(string[] args)
        {
            Console.WriteLine("Starting program...");
            Thread t = new Thread(PrintNumbersWithStatus);
            Thread t2 = new Thread(DoNothing);
            Console.WriteLine(t.ThreadState.ToString());
            t2.Start();
            t.Start();
            for (int i = 1; i < 30; i++)
            {
                Console.WriteLine("Thread t : " + t.ThreadState.ToString());
            }
            Thread.Sleep(TimeSpan.FromSeconds(6));
            //-----------------------------------
            t.Abort();//阻碍主线程继续运行,等待t线程运行完成。
            //在调用此方法的线程上引发 System.Threading.ThreadAbortException,
            //以开始终止此线程的过程。调用此方法通常会终止线程。
            Console.WriteLine("A thread has been aborted");
            Console.WriteLine(t.ThreadState.ToString());//AbortRequested 线程的Thread.Abort()方法已被调用,但是线程还未停止;
            Console.WriteLine(t2.ThreadState.ToString());//Stopped 线程已经被停止;
            Console.ReadKey();
        }
        static void DoNothing()
        {
            for (int i = 1; i < 10; i++)
            {
                Thread.Sleep(TimeSpan.FromSeconds(2));
                Console.WriteLine("xxxxxxxxxxx"+i);
            }
        }
        static void PrintNumbersWithStatus()
        {
            for (int i = 1; i < 10; i++)
            {                
                Console.WriteLine("t : " + i);
                Thread.Sleep(TimeSpan.FromSeconds(2));
            }
        }

 

 



https://www.cnblogs.com/wyt007/p/9486752.html











、、、

转载于:https://www.cnblogs.com/lanyubaicl/p/11179914.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值