标准取消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
上一篇:ZGC的内存管理为什么这么设计呢?内存技术的发展状况是什么?
下一篇:最后一页