摘要: 在.net 4.0中,引入了一个新的类CancellationToken,这个类基本上集成了我们各种常用的取消方式,在并发任务中非常有用。同步模式下的取消:一种比较常见的需要支持取消功能的的是一些比较耗时的分段操作:如视频转换,网络下载等,这种方式下的取消机制如下:建立一个标记位,表示该操作是否已经取消 UI线程在获取到取消事件后,置标记位为true 耗时的操作线程里,没进行一小段操作之后查询该标记位,如果为true则主动退出。 使用方式如下:EventHandler externalEvent; void Example1() { CancellationTokenSource cts = 阅读全文
posted @ 2014-01-07 10:16 遥望星空 阅读(373) 评论(0) 推荐(0) 编辑
摘要: Task和ThreadPool的功能类似,可以用来创建一些轻量级的并行任务。对于将一个任务放进线程池 ThreadPool.QueueUserWorkItem(A); 这段代码用Task来实现的话,方式如下: Task.Factory.StartNew(A); 这两端代码的使用和实现的功能都十分相似。但和TheadPool相比,Task有着更多的功能,更加方便我们使用。假如我们要创建三个任务,并等待它们完成。这个功能用TheadPool实现如下:using (ManualResetEvent mre1 = new ManualResetEvent(false)) using (ManualRe 阅读全文
posted @ 2014-01-07 10:15 遥望星空 阅读(490) 评论(0) 推荐(0) 编辑