• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 如何取消.net后台线程的执行

如何取消.net后台线程的执行

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了后台线程,c#后台线程,java 后台线程,android 后台线程,梦三国后台线程异常等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
介绍
在使用多线程模型进行编程时,经常遇到的问题之一是,当我们关闭前台的UI线程时,后台的辅助线程仍然处于活动状态,从而导致整个应用程序无法正常退出。这时我们需要一种较安全的方式来结束后台线程的运行,这样我们可以随时结束后台线程的运行,并且在线程结束时进行相应的资源清理工作(例如将内存数据写入硬盘)。.net框架提供了一些工具来实现该功能。

目录
IsBackground属性
Abort方法
轮循方式
取消阻塞的线程
IsBackgound属性
Thread类提供了IsBackground属性,当线程的IsBackground属性被设置为true时,表示此线程为后台工作线程。当一个应用程序结束时,它的所有后台线程会自动的被结束执行。如果你有一个后台线程侦听Socket连接,并且正在被阻塞,那么这时候通过设置线程的IsBackground属性为True,使它自动随应用程序的结束而结束是比较合适的。但在这种情况下,线程会静悄悄的结束,它不会引发任何异常,你的线程没有机会执行一些需要的清理代码。例如,内存中的数据可能会来不及写入磁盘,从而造成丢失数据。

Abort方法
可以调用Thread类的Abort方法来强制终制线程。上调用此方法时,线程上引发ThreadAbortException,并导至线程终结,通过捕获该异常,可以执行一些资源清理代码。但这种模式也有一些问题,主要是难以知道线程上的代码执行到什么地方,所有相应的资源清理代码也难以编写。总的来说这是一种比较粗暴的终止线程执行的方法,通常来说是不推荐使用的。

轮循方式
如果后台线程将执行一个很长的计算,那么可以将计算隔成若干小段,并经常检查是否需要取消线程。.NET框架提供了CancellationTokenSource类来作为线程取消的统一模式。例如:
多线程模型中的线程取消问题还是比较复杂的。Thread.IsBackground属性提供了在前台线程结束后自动结束线程的方法。Thread.Abort方法提供了一种“粗暴”的结束线程的方法。CancellationTokenSource类则是线程取消的标准模式,我们应当更多的使用这种模式。文章写的不多,基本是字数不够,代码来凑,大家伙将就的看看吧。 </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 如何取消.net后台线程的执行

相关文章

  • 2017-05-11asp.net下XML的加密和解密实现方法
  • 2017-05-11MVC4 基础 枚举生成 DropDownList 实用技巧
  • 2017-05-11.NET 下运用策略模式(组合行为和实体的一种模式)
  • 2017-05-11管理员登录设计(第7节)
  • 2017-05-11asp.net下Linq To Sql注意事项小结
  • 2017-05-11ABP入门系列之分页功能的实现
  • 2017-05-11ASP.Net中利用CSS实现多界面的两种方法
  • 2018-08-20asp.net core下给网站做安全设置的方法详解
  • 2017-05-11ASP.NET实现URL映射的方法
  • 2018-08-20.Net Core使用OpenXML导出、导入Excel

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ASP.NET2.0中用Gridview控件操作数据的代码
    • 深入Lumisoft.NET实现邮件发送功能的方法详解
    • asp.net 虚方法、抽象方法、接口疑问
    • vs2010无法添加dll引用的处理方法
    • Repeater中嵌套Repeater的示例介绍
    • HttpWebRequest的常见错误使用TcpClient可避免
    • ASP.NET 中的Application详解
    • 详解ASP.NET验证码的生成方法
    • .NET图像界面按钮的clicked事件浅谈
    • gridview中实现radiobutton的单选示例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有