多任务编程(二)取消任务

     在多线程编程中取消操作是一个很普遍的处理操作,最简单的做法是通过设置一个标识位来判断是否取消。.net 任务并行框架提供了一套有效机制来实现任务的取消,以降低取消操作的风险。

     在.net 任务并行框架中通过CancellationTokenSource和CancellationToken这两个类来执行任务取消操作以及获取取消状态。CancellationToken是作为一个标记存放于任务中,CancellationTokenSource是标记的状态管理者和操作者。

     一种典型的检测取消操作的方式是轮询标记。

    实例代码:

多任务编程(二)取消任务

运行结果:

多任务编程(二)取消任务

以委托的方式检测取消操作,任务取消操作机制提供了一种委托(delegate)方式,让我们在任务取消时执行相应的操作。

示例代码:

多任务编程(二)取消任务

运行结果:

多任务编程(二)取消任务

有的时候我们希望在取消一个任务的同时开启另一个任务,这时我们通过标记对象的WaitHandler的WaitOne操作来实现。

示例代码:

多任务编程(二)取消任务

运行结果:

多任务编程(二)取消任务

任务取消就介绍到这里,下一篇将介绍任务等待.欢迎大家提出意见.

你可能感兴趣的:(编程)