zoukankan      html  css  js  c++  java
  • 关于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");
                }
            }
  • 相关阅读:
    【matlab】学习笔记 2脚本编写
    【matlab】学习笔记 1 入门简单操作
    【matlab】学习笔记 3 函数编写
    MySQL学习笔记
    数据库连接-----MySQL -> JDBC
    leetcode——Mysql数据库查询题目
    不同单词个数统计
    初始化二维数组
    JS基本变量类型和对象杂谈
    LeetCode Clone Graph
  • 原文地址:https://www.cnblogs.com/mxw09/p/2050214.html
Copyright © 2011-2022 走看看