前言
本打算繼續(xù)寫SQL Server系列,接下來應(yīng)該是死鎖了,但是在.NET Core項(xiàng)目中到處都是異步,最近在寫一個(gè)爬蟲用到異步,之前不是很頻繁用到異步,當(dāng)用到時(shí)就有點(diǎn)縮手縮尾,怕留下坑,還是小心點(diǎn)才是,于是一發(fā)不可收拾,發(fā)現(xiàn)還是too young,所以再次查看資料學(xué)習(xí)下Task,用到時(shí)再學(xué)效果可想而知,若有不同意見請(qǐng)?jiān)谠u(píng)論中指出。
建議異步返回Task或Task<T>
當(dāng)在.NET Core中寫爬蟲用到異步去下載資源后接下來進(jìn)行處理,對(duì)于處理完成結(jié)果我返回void,想到這里不僅僅一愣,這么到底行不行,翻一翻寫的第一篇博客,只是提醒了我下不要用void,至于為何不用也沒去探討,接下來我們來探討下返回值為Task和void,至于Task<T>這個(gè)和Task類似。我們直接看代碼,首先演示void,如下:
private static async void ThrowExceptionAsync() { await Task.Delay(TimeSpan.FromSeconds(1)); throw new InvalidOperationException(); } private static void AsyncVoidExceptions_CannotBeCaughtByCatch() { try { ThrowExceptionAsync(); }&