您好,登錄后才能下訂單哦!
本篇文章為大家展示了C#中怎么實現長異步操作,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
程序中執行按鈕的Click 處理如下:
private void _btnRun_Click( object sender, System.EventArgs e ) { RunTask( Convert.ToInt32( _txtSecond.Value ) ); }
C#多線程控制進度條之長異步操作遇到的問題:回想上面剛才問題發生的原因,直到 RunTask 執行完成后返回,Click 處理函數始終不能夠返回,這就意味著用戶界面不能處理重畫事件或其他任何事件。一個解決方法就是創建另外一個線程,代碼片斷如下:
using System.Threading; private int _seconds; // 執行任務工作線程進入點,C#多線程控制進度條之長異步操作 void RunTaskThreadStart() { RunTask( _seconds ); } // 通過創建工作線程消除用戶界面線程的阻塞問題 private void _btnRun_Click( object sender, System.EventArgs e ) { _seconds = Convert.ToInt32( _txtSecond.Value ); Thread runTaskThread = new Thread( new ThreadStart( RunTaskThreadStart ) ); runTaskThread.Start(); } //C#多線程控制進度條之長異步操作
現在,我們不再需要等待 RunTask 執行完成才能夠從 Click 事件返回,我們創建了新的工作線程并讓它開始工作、運行。
C#多線程控制進度條之長異步操作圖
runTaskThread.Start(); 將我們新創建的工作線程調度執行并立即返回,允許我們的用戶界面線程重新獲得控制權執行它自己的工作。現在如果用戶再切換應用程序,因為工作線程在自己的 空間執行長任務,用戶界面線程被解放出來處理包括用戶界面重畫的各種事件,我們上面遇到的問題就解決了。
上述內容就是C#中怎么實現長異步操作,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。