翻譯|使用教程|編輯:王香|2018-10-17 10:28:30.000|閱讀 482 次
概述:本文介紹C#中的異步編程(上),在代碼中如何實現異步編程。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
【下載FastReport.Net最新版本】
很多人都聽說過這個,但是很少有人在他們的代碼中使用它。同時,沒有具有客戶端 - 服務器架構的嚴肅程序將無需異步編程。與數據庫交換數據,客戶端和服務器的交互 - 這需要時間,可以由其他進程占用而不是等待。
當同步執行操作時,該線程被另一個線程阻塞。我們必須等待第二個過程的執行才能將控制權返回給第一個過程。這會導致不必要的資源浪費,因為具有單個任務的流可以等待很長時間來響應。例如,從數據庫或Web服務。
如果臨時資源可以節省多線程(現代處理器的好處允許它),那么內存資源將無法保存它。畢竟,實際上,多線程也是同步執行的操作。只是他們很少。 真正的解決方案是使用異步處理。通過這種方法,我們可以使用多個線程來控制其中一個。 也就是說,在等待來自另一個任務的響應時,當前的任務不會阻塞該線程,而是將其提供給另一個任務。
我們來看看圖片:
在這種情況下,使用單線程異步方法。 這里是一個多線程異步流。
每個線程執行許多任務。當其中一個任務在預期中停止時,將采取另一個任務。因此,任務從一個線程流向另一個線程,具體取決于首先釋放的線程。該圖顯示任務1在第一個線程中開始執行,在第二個線程中完成。 讓我們再考慮一個圖 - 序列圖:
該圖描述了客戶端 - 服務器應用程序的線程行為。客戶端從服務器發送數據請求,而不是“掛起”等待響應(如在同步方法中)繼續工作,為用戶提供另一個應用程序功能。因此,如果您是一名Web開發人員,那么沒有異步就無法做任何事情。 讓我們理解一點。異步編程有三種模式:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn