溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C#多線程控制進度條的異步調(diào)用怎么實現(xiàn)

發(fā)布時間:2021-12-03 09:33:03 來源:億速云 閱讀:144 作者:iii 欄目:編程語言

這篇文章主要講解了“C#多線程控制進度條的異步調(diào)用怎么實現(xiàn)”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C#多線程控制進度條的異步調(diào)用怎么實現(xiàn)”吧!

看看具體的步驟和實現(xiàn):

在上面的代碼中,我們注意到,我們沒有給工作線程進入點(RunTaskThreadStart)傳遞任何參數(shù),我們采用聲明一個窗體類的字段 _seconds 來給工作線程傳遞參數(shù)。在某種應(yīng)用場合不能夠給工作線程直接傳遞參數(shù)也是一件非常痛苦的事情。

C#多線程控制進度條之異步調(diào)用的必要性:如何改進呢?我們可以使用委托來進行異步調(diào)用。委托是支持傳遞參數(shù)的。這樣,就消除了我們剛才的問題,使我們能夠消除額外的字段聲明和額外的工作線程函數(shù)。

如果你不熟悉委托,你可以簡單的把它理解為安全的函數(shù)指針。采用了委托異步調(diào)用,代碼片斷如下:

// 執(zhí)行任務(wù)的委托聲明  delegate void RunTaskDelegate( int seconds );   // 通過創(chuàng)建委托解決傳遞參數(shù)問題  private void _btnRun_Click(    object sender, System.EventArgs e )  { //C#多線程控制進度條之異步調(diào)用 RunTaskDelegate runTask =    new RunTaskDelegate( RunTask );   // 委托同步調(diào)用方式  runTask( Convert.ToInt16( _txtSecond.Value ) );  }   //通過創(chuàng)建委托解決傳遞參數(shù)問題,   //通過委托的異步調(diào)用消除用戶界面線程的阻塞問題  private void _btnRun_Click(    object sender, System.EventArgs e )  {  RunTaskDelegate runTask =   new RunTaskDelegate( RunTask );   // 委托異步調(diào)用方式 ,C#多線程控制進度條之異步調(diào)用 runTask.BeginInvoke( Convert.ToInt16( _txtSecond.Value ), null, null );  }

感謝各位的閱讀,以上就是“C#多線程控制進度條的異步調(diào)用怎么實現(xiàn)”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對C#多線程控制進度條的異步調(diào)用怎么實現(xiàn)這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI