C#笔记22:多线程之停止或取消线程
来源:互联网 发布:淘宝客服团队绩效 编辑:程序博客网 时间:2024/06/03 13:23
作者:Luminji
转自:http://www.cnblogs.com/luminji/archive/2010/09/17/1829397.html
C#笔记22:多线程之停止或取消线程
1:为什么不建议使用Abort取消
2:如何是正确的取消
3:FRAMEWORK4中的取消
1:为什么不建议使用Abort取消
来看下面的代码:
using (FileStream fs = File.Open(myDataFile, FileMode.Open, FileAccess.ReadWrite, FileShare.None)){ ...do stuff with data file...}This using block is really shorthand for this:FileStream fs = File.Open(myDataFile, FileMode.Open, FileAccess.ReadWrite, FileShare.None);try{ ...do stuff with data file...}finally{ IDisposable disp = fs; disp.Dispose();}
假设你的工作线程已经进行到finally里面,这个时候,UI线程调用了该线程的Abort()方法,则很有可能,在Disp.Dispose()还没有执行的时候,工作线程跳出finally代码块了。很好,这样你的fs就永远不会被close了。不是说finally会永远被执行吗,是的,大多数情况下是的,但不包括调用Thread.Abort所引发的ThreadAbortException
异常。
鉴于此理由,不建议使用Abort。
2:如何是正确的取消
通过前几章的知识,通过信号量、辅助标识变量来取消。但仍有一种情况,如下执行你想要的取消,如大数据库的还原。谁知道,请告诉我。
3:FRAMEWORK4中的取消
查看http://msdn.microsoft.com/zh-cn/library/dd997364.aspx
0 0
- C#笔记22:多线程之停止或取消线程
- C#笔记22:多线程之停止或取消线程
- Java笔记 - 多线程 - 停止线程
- java多线程之停止线程
- java多线程之-----停止线程
- Java多线程之停止线程
- 多线程编程之线程取消
- (笔记九)多线程、Lock、停止线程
- Java多线程学习笔记—线程停止
- JAVA多线程学习笔记<3> 停止线程
- Java 多线程 学习笔记 线程的停止
- 黑马程序员--多线程(三)之线程停止
- Java多线程之停止一个线程
- java多线程之启动,停止线程
- Java多线程编程核心技术之---停止线程
- Linux--多线程之线程的取消pthread_cancel
- C#笔记19:多线程之线程启动、参数、返回值
- C#多线程学习笔记(二)之线程同步
- php 正则手机号码归类
- 基础练习 特殊回文数
- 实现获取本机所有图片 - Android - Loader
- Java的finally理解
- ASIHttp无法联网,发不出请求
- C#笔记22:多线程之停止或取消线程
- App Store idfa被拒检查办法
- Win下的输入法(IME)编程(2)
- Android回顾之XML解析
- HDU-4568 Hunter 最短路 + 状态压缩DP(TSP)
- kernel study
- C#笔记23:多线程之Task(并行编程)
- 基于opencv和c++的图像处理:直方图均衡化
- 统计运行时间的宏