一、課程介紹 本次分享課程屬於《C#高級編程實戰技能開發寶典課程系列》中的第一部分,阿笨後續會計劃將實際項目中的一些比較實用的關於C#高級編程的技巧分享出來給大家進行學習,不斷的收集、整理和完善此系列課程! 本高級系列課程適合人群如下: 1、有一定的NET開發基礎並對多線程技術有一定瞭解和認識。 2 ...
一、課程介紹
本次分享課程屬於《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)、非同步的本質也是多線程。
詳細關於兩者的區別和聯繫,推薦下麵博客:
三、非同步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》課程。俗話說的好:師父領進門修行在個人,希望大家在學習的道路上一直堅持下去!
五、源碼線上學習和演示