标准取消Cancel这个程序的实列化是什么?关于async/await原理是什么?

来源:创视网 时间:2023-01-06 08:19:13

标准取消Cancel

实例化一个CancellationTokenSource

包含了一个IsCancellationRequested属性,属性值默认为false

包含了一个Cancel方法,Cancel方法如果被执行,IsCancellationRequested属性值马上更新成true

线程内部判断IsCancellationRequested值,结束线程

包含了一个Token属性,可以Register注册一个委托,创建Task的时候传入,线程结束后调用

async/await原理

如果给方法加上Async,在底层会生成一个状态机,一个对象在不同的状态可以执行的不同的行为

(1)实例化状态机

(2)把状态机实例交给一个build去执行

(3)整理线程的上下文

(4)stateMachine.MoveNext();

(5)MoveNext如何执行,先获取一个状态,继续往后执行

(6)如果有异常,抛出异常,把状态重置为-2

(7)如果没有异常,把状态重置重置为-2

(8)SetResult();把结果包裹成一个Task

X 关闭

Copyright   2015-2022 科技讯版权所有   备案号:豫ICP备2021032478号-15   联系邮箱:897 18 09@qq.com