前言

本打算繼續(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,如下:

萬碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

        private static async void ThrowExceptionAsync()
        {            await Task.Delay(TimeSpan.FromSeconds(1));            throw new InvalidOperationException();
        }        private static void AsyncVoidExceptions_CannotBeCaughtByCatch()
        {            try
            {