C#跟著阿笨玩一起玩非同步Task實戰(一)

一、課程介紹

本次分享課程屬於《C#高級編程實戰技能開發寶典課程系列》中的第一部分,阿笨後續會計劃將實際項目中的一些比較實用的關於C#高級編程的技巧分享出來給大家進行學習,不斷的收集、整理和完善此系列課程!

本高級系列課程適合人群如下:

1、有一定的NET開發基礎並對多線程技術有一定了解和認識。

2、喜歡阿笨的乾貨分享課程的童鞋們。

希望大家在選擇阿笨的 C#高級編程實戰技能開發寶典課程系列的時候,根據自身的情況進行選擇,由於本次課程不是零基礎教學課程系列,所以說.NET基礎差的到了沒朋友的地步話,那阿笨建議您還是先「學」好NET的一些基礎知識,然後在來C#跟著阿笨「玩」一起玩非同步Task實戰!

如果您同樣對本次分享《C#跟著阿笨玩一起玩非同步Task實戰》課程感興趣的話,那麼請跟著阿笨一起學習吧。

廢話不多說,直接上乾貨,我們不生產乾貨,我們只是乾貨的搬運工。

二、概念名稱含義解釋

2.1、多線程和非同步兩者的區別和聯繫?

一、區別:

1)、非同步適用範圍則是當需要執行I/O操作時。I/O操作包括了直接的文件、網路的讀寫,還包括資料庫操作、Web Service、HttpRequest以及.net Remoting等跨進程的調用。

2)、線程適用範圍則是那種需要長時間CPU運算的場合,例如耗時較長的圖形處理和演算法執行。

但是往往由於使用線程編程的簡單和符合習慣,所以很多朋友往往會使用線程來執行耗時較長的I/O操作。

二、聯繫:

1)、多線程和非同步操作兩者都可以達到避免調用線程阻塞的目的,從而提高軟體的可響應性。

2)、非同步的本質也是多線程。

詳細關於兩者的區別和聯繫,推薦下面博客:

《C#多線程與非同步的區別》《如何正確運用非同步編程技術》

三、非同步Task實戰實例分享

3.1)、C#使用非同步Task實現查詢等待Loading中效果。

3.2)、C#使用Task實現多任務批量處理。

3.3)、C#如何優雅的將同步方法轉化為非同步方法。

3.4)、 C#如何以同步方式獲取非同步事件回調的結果。

1)、解決手段一: 通過 Task+AutoResetEvent機制實現非同步阻塞獲取非同步事件回調的結果。

2)、解決手段二:通過 Task +CancellationTokenSource( 課後請自行思考)

四、總結

如果您想更加全面的學習一下關於阿笨使用非同步Task技術在項目當中的實戰技能,推薦大家可以學習一下阿笨早期之前分享的《C#實戰技能之WebApi+Task+WebSocket》課程。俗話說的好:師父領進門修行在個人,希望大家在學習的道路上一直堅持下去!

五、源碼在線學習和演示

推薦閱讀:

c# 為什麼不脫離.net平台,實現跨平台呢?
在現在的條件下使用Node.js開發複雜業務邏輯的ERP應用可行嗎?
Mono的應用廣泛嗎?
ASP.NET MVC 最好的視圖引擎是什麼?
C# 秒殺物品,程序如何控制並發?

TAG:C | NET | Thread通訊標準 |