(CancellationToken)传递给所有使用到的API
由于在.NET中取消操作必须显示的传递CancellationToken,所以如果想取消所有调用的异步函数,那么应该将CancllationToken...使用定时器回调函数
❌下面例子使用一个返回值为void的异步,将其传递给Timer进行,因此,如果其中任务抛出异常,则整个进程将退出
public class Pinger
{
private.../ping");
}
}
❌下面例子将阻止计时器回调,这有可能导致线程池中线程耗尽,这也是一个异步差于同步的例子
public class Pinger
{
private readonly.../ping").GetAwaiter().GetResult();
}
}
☑️下面例子是使用基于的异步的方法,并在定时器回调函数中丢弃该任务,并且如果此方法抛出异常,则也不会关闭进程,而是会触发...,该方法在某个时候执行调用
❌下面这个错误例子将强制调用者要么阻塞要么使用async void异步方法
public class BackgroundQueue
{
public static