C#多線程控制進度條之異步調用
C#多線程控制進度條之異步調用是如何實現的呢?現在讓我們看看具體的步驟和實現:
在上面的代碼中,我們注意到,我們沒有給工作線程進入點(RunTaskThreadStart)傳遞任何參數,我們采用聲明一個窗體類的字段 _seconds 來給工作線程傳遞參數。在某種應用場合不能夠給工作線程直接傳遞參數也是一件非常痛苦的事情。
C#多線程控制進度條之異步調用的必要性:如何改進呢?我們可以使用委托來進行異步調用。委托是支持傳遞參數的。這樣,就消除了我們剛才的問題,使我們能夠消除額外的字段聲明和額外的工作線程函數。
如果你不熟悉委托,你可以簡單的把它理解為安全的函數指針。采用了委托異步調用,代碼片斷如下:
- // 執行任務的委托聲明
- delegate void RunTaskDelegate( int seconds );
- // 通過創建委托解決傳遞參數問題
- private void _btnRun_Click(
- object sender, System.EventArgs e )
- { //C#多線程控制進度條之異步調用
- RunTaskDelegate runTask =
- new RunTaskDelegate( RunTask );
- // 委托同步調用方式
- runTask( Convert.ToInt16( _txtSecond.Value ) );
- }
- //通過創建委托解決傳遞參數問題,
- //通過委托的異步調用消除用戶界面線程的阻塞問題
- private void _btnRun_Click(
- object sender, System.EventArgs e )
- {
- RunTaskDelegate runTask =
- new RunTaskDelegate( RunTask );
- // 委托異步調用方式 ,C#多線程控制進度條之異步調用
- runTask.BeginInvoke(
- Convert.ToInt16( _txtSecond.Value ), null, null );
- }
C#多線程控制進度條之異步調用的基本內容就向你介紹到這里,希望對你了解和學習C#多線程控制進度條之異步調用有所幫助。
【編輯推薦】