《windows server 2003》学习领域课程标准

《windows server 2003》学习领域课程标准

ID:18664905

大小:71.46 KB

页数:10页

时间:2018-09-20

《windows server 2003》学习领域课程标准_第1页
《windows server 2003》学习领域课程标准_第2页
《windows server 2003》学习领域课程标准_第3页
《windows server 2003》学习领域课程标准_第4页
《windows server 2003》学习领域课程标准_第5页
资源描述:

《《windows server 2003》学习领域课程标准》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、.NET4.0并行计算技术基础(9)今天贴文,发现CSDN博客又出现了BUG,图片无法上传。所以文中插图就没有了。等CSDN博客恢复正常后再补上。 呵呵,我早已经习惯了CSDN博客时不时地闹点小脾气。 补充一句:CSDN博客开发小组的小伙子们,干活得加把劲啊,一个专业网站不应该经常出现这么明显的BUG,上线前请认真测试一下你们的程序,别偷懒。 金旭亮2009.10.14 =============================================19.3.8任务的取消TPL提供了多个方式取消一个任务。

2、1调用Task.Cancel方法直接取消任务的执行如果要取消一个正在运行的任务,可以调用Task.Cancel方法,此方法会设置Task对象的IsCancellationRequested属性等于true。在任务函数中,通过检查此属性值就可以知道是否需要取消操作。其代码框架如下: //需要执行的任务函数ActiontaskFunction=delegate(){//...代码略if(Task.Current.IsCancellationRequested){//处理外界的取消请求……//设置Task的状态为IsCa

3、nceledTask.Current.AcknowledgeCancellation();return;}//...代码略}; 注意在任务函数中如何引用到当前的Task对象。以下代码先启动任务,然后再取消它: Tasktsk=newTask(taskFunction);tsk.Start();//…tsk.Cancel();//取消操作 示例项目TaskCancel展示了如何使用Task.Cancel()方法取消一个正在执行的任务。Task.Cancel()是一个异步方法,它不会等待Task对象完成取消操作,仅仅是

4、设置其IsCancellationRequested属性等于true。注意:区分IsCancellationRequested和IsCanceled属性Task类的IsCancellationRequested和IsCanceled属性“长得很像”,但却是不一样的,前者只是表明Task类的Cancel方法被调用了,而IsCanceled属性表明Task对象处于Canceled状态,这是Task对象的3个终止状态之一。这两个属性有着密切的联系。(1)    Task.Cancel()方法负责设置IsCancellat

5、ionRequested属性,而Task.AcknowledgeCancellation()方法负责设置IsCanceled属性。(2)    Task.Cancel()方法通常是由“外界”调用的,它表明外界希望“你”取消当前的工作。而Task.AcknowledgeCancellation()方法是“你自己”在“内部”调用的,向“外界”表明:我已经停止执行当前的工作任务,我的当前状态为“Canceled”。(3)    调用Task.AcknowledgeCancellation()方法时,要求自身的IsCanc

6、ellationRequested属性值为true,否则会抛出一个InvalidOperationException异常。 如果发出取消请求的线程希望等待Task对象完成取消工作,可以改为调用Task.CancelAndWait()方法发出取消请求,这是一个同步方法,只有它返回之后,发出取消请求的线程才能继续执行。为了避免发生由于Task.CancelAndWait()长久不返回而导致发出取消请求的线程无限期阻塞的情况,可以指定一个等待的最长时间,或者是指定一个CancellationToken,从而允许“取消”这

7、个“等待Task对象完成取消工作”的操作。Task.CancelAndWait()方法有几个重载形式用于这一场景,其中一个“功能最强”的形式如下: publicboolCancelAndWait(intmillisecondsTimeout,CancellationTokencancellationToken) millisecondsTimeout指定等待时间,cancellationToken用于指定一个取消令牌对象。当“时间到”或者cancellationToken对象的IsCancellationReque

8、sted属性值等于True时,CancelAndWait()方法将立刻返回,其返回值为false。2使用线程统一取消模型在“外界”直接取消任务我们在第17章中介绍过.NET4.0所提供的线程统一取消模型。可以在任务函数中直接监控一个CancellationToken对象而实现任务的取消工作。使用这个方法,无需直接调用Task.Cancel()就可以取消操作。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。