异步操作时需要注意的要点
1.使用异步方法返回值应当避免使用void
在使用异步方法中最好不要使用void当做返回值,无返回值也应使用Task作为返回值,因为使用void作为返回值具有以下缺点
无法得知异步函数的状态机在什么时候执行完毕...()方法执行长时间堵塞线程的工作
长时间运行的工作是指在应用程序生命周期执行后台工作的线程,如:执行processing queue items,执行sleeping,执行waiting或者处理某些数据...,此类线程不建议使用Task.Run方法执行,因为Task.Run方法是将任务在线程池内进行排队执行,如果线程池线程进行长时间堵塞,会导致线程池增长,进而浪费性能,所以如果想要运行长时间的工作建议直接创建一个新线程进行工作...{
var thread = new Thread(ProcessQueue)
{
// 设置线程为背后线程,使得在主线程结束时此线程也会自动结束...,但请注意它们的使用方式
7.建议使用CancellationTokenSource(s)进行超时管理时总是释放(dispose)
用于进行超时的CancellationTokenSources,如果不释放