打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
关于Thread.Abort
static void Main(string[] args)
        {
            Thread th 
= new Thread(Fun);
            th.Start();
            Thread.Sleep(
1000);
            th.Abort();
        }

        
static void Fun()
        {
            
try
            {
                
while (true)
                {
                    
try
                    {
                        Test();
                    }
                    
catch (ThreadAbortException ex) //在此处ThreadAbortException能被捕获到,但是还是会向上层冒泡
                    {
                        Console.WriteLine(
"线程被终止了");
                       
//由于是在异常捕获中休眠,所以即使其它线程调用此线程的Abort方法结束此线程,也得等休眠时间过去才能将ThreadAbortException异常冒泡到此线程的最顶层代码
                        Thread.Sleep(3000);
                    }
                }
            }
            
catch (ThreadAbortException ex)//在此处ThreadAbortException能被捕获到,此线程结束
            {
                Console.WriteLine(
"结束了");
            }
        }
        
static void Test()
        {            
            
try
            {
                Thread.Sleep(
100000);  
            }
            
catch (ThreadAbortException ex)//在此处ThreadAbortException能被捕获到,但是还是会向上层冒泡
            {
                Console.WriteLine(
"Test_ThreadAbortException");
            }
            
catch (Exception ex)
            {
                Console.WriteLine(
"Test_Exception");
            }
        }
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C#中的线程之Abort陷阱
Thread 类实例方法总结
线程的暂停与重新启动
[C# 线程处理系列]专题二:线程池中的工作者线程
C# 温故而知新: 线程篇
C# 多线程 | 菜鸟教程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服