• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    .net让线程支持超时的方法实例和线程在执行结束后销毁的方法


    .net让线程支持超时

    使用 CancellationTokenSource

    复制代码 代码如下:

    private static void TimeoutTest1()
            {
                var cts = new CancellationTokenSource();

                var thread = new Thread(() =>
                {
                    Console.WriteLine(String.Format("线程{0}执行中", Thread.CurrentThread.ManagedThreadId));
                    Thread.Sleep(10000);
                    Console.WriteLine(String.Format("线程{0}执行中", Thread.CurrentThread.ManagedThreadId));
                });

                cts.Token.Register(() =>
                {
                    thread.Abort();
                });
                cts.CancelAfter(1000);

                thread.Start();
                thread.Join();

                Console.WriteLine(String.Format("线程{0}的状态:{1}", thread.ManagedThreadId, thread.ThreadState));
            }

    这里采用了 Abort 终止了线程,CancellationTokenSource 也支持其它模式,可以去官方看看文档。

    使用 Join

    复制代码 代码如下:

    private static void TimeoutTest2()
            {
                var thread = new Thread(() =>
                {
                    Console.WriteLine(String.Format("线程{0}执行中", Thread.CurrentThread.ManagedThreadId));
                    Thread.Sleep(10000);
                    Console.WriteLine(String.Format("线程{0}执行中", Thread.CurrentThread.ManagedThreadId));
                });

                thread.Start();
                thread.Join(1000);
                thread.Abort();

                Console.WriteLine(String.Format("线程{0}的状态:{1}", thread.ManagedThreadId, thread.ThreadState));
            }

    .net让线程在执行结束后销毁

    线程执行完、遇到未处理异常和被终止后就自动不可用了,如果是垃圾,自然会被 GC 给回收,有一点需要说明的是:线程的未处理异常会导致应用程序的终止,一个线程的异常不会自动冒泡到其它线程。

     

    您可能感兴趣的文章:
    • 设置ASP.NET页面的运行超时时间详细到单个页面及站点
    • 登录超时给出提示跳到登录页面(ajax、导入、导出)
    • php设置页面超时时间解决方法
    • JS实现页面超时后自动跳转到登陆页面
    • php页面函数设置超时限制的方法
    • ajax提交session超时跳转页面使用全局的方法来处理
    • Asp.Net各种超时问题总结
    • Asp中Server.ScriptTimeOut属性需要注意的一点分析
    • 超过了脚本运行的最长时间..Server.ScriptTimeOut 属性指定新值
    • ASP.NET页面请求超时时间设置多种方法
    上一篇:ASP.NET拒绝访问临时目录的解决方法
    下一篇:.NET实现热插拔功能(动态替换功用)方案实例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    .net让线程支持超时的方法实例和线程在执行结束后销毁的方法 .net,让,线程,支持,超时,