自留,如果理解错误,请指正
async
async为异步关键词,声明之后,void或Task会被认为是异步方法,在主线程执行过程中,不一定要跑完整个方法,到特定的关键点就可以继续执行主线程后面的任务了。
await
这个是搭配async使用的。指的是上面说到的关键点 作用在告诉程序,当线程执行到这里的时候,就可以分道扬镳了,运行的主线程会分成两部分。一部分回到主线程,另一部分会开启新的线程。是的,直到这里才开启新的线程。如果没有await,即便方法加了async也会一直在主线程跑下去,里面如果出现任何的阻塞,主线程也会被阻塞。
private async static void ListenLog()
{
await Task.Delay(10);//如果不加await 整个方法将作为同步方法执行
int idx = 0;
while (true)
{
lock (Logger.Instance)
{
Logger.Instan