C# 基于事件的异步模式
點擊藍字 關注我們
開工大吉
EventBasedAsyncPattern 方法使用了基于事件的異步模式。這個模式定義了一個帶有 “Async” 后綴的方法。示例代碼再次使用了WebClient 類。對于同步方法DownloadString,WebClient類提供了一個異步變體方法 DownloadStringAsync。當請求完成時,會觸發 DownloadStringCompleted事件。使用此事件的事件處理程序,可以檢索結果。DownloadStringCompleted事件類型為DownloadStringCompletedEventHandler。第二個參數是 DownloadStringCompletedEventArgs 類型。這個參數通過 Result 屬性返回結果字符串:
private static void EventBasedAsyncPattern() {Console.WriteLine(nameof(EventBasedAsyncPattern));using?(var?client?=?new?WebClient()){client.DownloadStringCompleted?+=?(sender, e) =>{Console.WriteLine(e.Result.Substring(0,100));};client.DownloadStringAsync(new Uri(url));Console.WriteLine();} }使用 DownloadStringCompleted 事件,事件處理程序將通過保存同步上下文的線程來調用。在 Windows 窗體、WPF 和 UWP 中,這就是 UI 線程。因此,可以直接從事件處理程序中訪問 UI 元素。與異步模式相比,這是該模式的一大優點。
基于事件的異步模式和同步編程之間的區別在于方法調用的順序;與同步方法調用相比,順序顛倒了。調用異步方法之前,需要定義這個方法完成時發生什么。
往期推薦
·??C# 數據流
·??C# 類型系統
·??C# 面向對象的編程
·??C# 執行 SQL 語句
·??C# 連接數據庫
·??C# 迭代器
微信號 : sf-1738658853
總結
以上是生活随笔為你收集整理的C# 基于事件的异步模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 技术分享 | 混合云模式下SaaS端前端
- 下一篇: MariaDB Spider 数据库分库