异步编程

异步编程

能提高web服务器同时处理请求的数量。并不能提高单个请求处理的速度。

Async Await

wait调用的等待期间,.NET会把当前的线程返回给线程池,等异步方法调用执行完毕后,框架会从线程池再取出来一个线程执行后续的代码
所以 await前后对应的线程可能不是同一个线程。


线程暂停处理

如果想在异步方法中暂停一段时间,不要用Thread.Sleep(),因为它会阻塞调用线程,而要用await Task.Delay()



CancellationToken

有时需要提前终止任务,比如:请求超时、用户取消请求。
很多异步方法都有CancellationToken参数,用于获得提前终止执行的信号。


手动响应取消的实现方式

取消直接抛异常

调用

调用api取消方法方式

posted @ 2022-11-06 14:09  Raymon*码记  阅读(24)  评论(0)    收藏  举报