前言

本打算繼續(xù)寫(xiě)SQL Server系列,接下來(lái)應(yīng)該是死鎖了,但是在.NET Core項(xiàng)目中到處都是異步,最近在寫(xiě)一個(gè)爬蟲(chóng)用到異步,之前不是很頻繁用到異步,當(dāng)用到時(shí)就有點(diǎn)縮手縮尾,怕留下坑,還是小心點(diǎn)才是,于是一發(fā)不可收拾,發(fā)現(xiàn)還是too young,所以再次查看資料學(xué)習(xí)下Task,用到時(shí)再學(xué)效果可想而知,若有不同意見(jiàn)請(qǐng)?jiān)谠u(píng)論中指出。

建議異步返回Task或Task<T>

當(dāng)在.NET Core中寫(xiě)爬蟲(chóng)用到異步去下載資源后接下來(lái)進(jìn)行處理,對(duì)于處理完成結(jié)果我返回void,想到這里不僅僅一愣,這么到底行不行,翻一翻寫(xiě)的第一篇博客,只是提醒了我下不要用void,至于為何不用也沒(méi)去探討,接下來(lái)我們來(lái)探討下返回值為T(mén)ask和void,至于Task<T>這個(gè)和Task類(lèi)似。我們直接看代碼,首先演示void,如下:

萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開(kāi)發(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
            {
             
        
		

網(wǎng)友評(píng)論