欢迎来到 翰文编程!专业源码交易平台,海量精品源码任你挑选。
登录 免费注册 帮助中心 收藏本站
个人中心 我的订单
首页 > 行业资讯 > try-catch-finally 引发的奇怪问题

try-catch-finally 引发的奇怪问题

行业资讯 来源:翰文编程 源码设计 定制服务 发布日期:2013-09-30 点击率:1

为了找到原因,我在本地进行调试,发现程序里用到了多线程,而代码正是卡在了workThread.Abort()语句而无法停止。

为什么不能Abort? 继续看线程调用的方法的代码,发现没有什么特殊的代码,只是在其中用了Thread.Sleep进行长时间等待。

难道是这个引起的? 写了一个测试程序验证,

class Program
    {
        private readonly Thread workThread;
 
        public Program()
        {
            workThread = new Thread(DoWork);
        }
 
        static void Main(string[] args)
        {
            new Program().Work();
            Console.ReadLine();
        }
 
        private void Work()
        {
            workThread.Start();
            Thread.Sleep(1 * 1000);
 
            Console.WriteLine("aborting");
            workThread.Abort();
            Console.WriteLine("aborted");
        }
 
        private void DoWork()
        {
                Console.WriteLine("started");
               Thread.Sleep(300 * 1000);
        }
    }

发现可以正常终止。

started
aborting
aborted
购买须知:请加客服微信咨询购买,本程序源码配有系统运行视频,请联系客服索要视频文件。
服务范围:定制各类计算机程序设计,vue、jsp、java 各类框架;开发工具 eclipse / myeclipse / idea / vs 等;wap、android、ssm、springboot、asp.net、php、python(爬虫、django、flask)、node.js、react、winform、uniapp 小程序等。
Q
客服 QQ
251836457
@
电子邮箱

需要源码或毕设帮助?

扫码添加客服微信,获取源码、演示、报价与一对一技术支持。

客服 顶部