78、.NET异步编程与并行编程全解析

.NET异步编程与并行编程全解析

异步编程模式

在编程中,存在多种异步编程模式。有一种模式是方法捕获同步上下文并使用它来引发事件。若在UI代码中使用支持此模式的对象,实际上呈现的是单线程异步模型。与APM(异步编程模型)相比,这种模式使用起来更加容易,因为在异步工作完成时,无需编写额外代码返回UI线程。

虽然没有自动机制将EAP(基于事件的异步模式)包装到任务中,但实现起来并不困难。另外,C#异步语言特性( async await 关键字)支持的可等待模式也是异步代码中常用的模式。可以使用这些特性直接消费TPL(任务并行库)任务,但语言并不直接识别 Task ,并且可以等待除任务之外的其他内容,只要实现了特定模式,就可以使用 await 关键字。

取消操作

.NET定义了取消缓慢操作的标准机制。可取消操作接受 CancellationToken 类型的参数,如果将其设置为取消状态,操作可能会提前停止而非运行至完成。需要注意的是, CancellationToken 类型本身不提供启动取消的方法,取消操作由 CancellationTokenSource 对象管理。调用 CancellationTokenSource 对象的 Cancel 方法,会将所有关联的 CancellationToken 实例设置为取消状态。

一些同步机制可以接受

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值