亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

C#中如何實現長任務操作

發布時間:2021-07-20 10:58:31 來源:億速云 閱讀:121 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關C#中如何實現長任務操作,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

許多種類的應用程序都需要長時間操作,比如:執行一個打印任務,請求一個 Web Service 調用等。用戶在這種情況下一般會去轉移做其他事情來等待任務的完成,同時還希望隨時可以監控任務的執行進度。

C#中如何實現長任務操作

C#多線程控制進度條之長任務操作圖1

下面的代碼片斷示例了當長任務執行時用戶界面是如何被更新的。

// 顯示進度條  ,C#多線程控制進度條之長任務操作void ShowProgress( int totalStep, int currentStep )  {  _Progress.Maximum = totalStep;  _Progress.Value = currentStep;  }   // 執行任務  void RunTask( int seconds )  {  // 每 1 / 4 秒 顯示進度一次  for( int i = 0; i < seconds * 4; i++ )  {  Thread.Sleep( 250 );   // 顯示進度條 ,C#多線程控制進度條之長任務操作 ShowProgress( seconds * 4, i + 1 );  }  }   private void _btnRun_Click(    object sender, System.EventArgs e )  {  RunTask( Convert.ToInt32( _txtSecond.Value ) );  }

當我們運行上面的程序,在整個長任務的過程中,沒有出現任何問題。這樣就真的沒有問題了嗎?當我們切換應用程序去做其他事情后再切換回來,問題就發生了!主窗體就會出現如下情況:

C#中如何實現長任務操作

C#多線程控制進度條之長任務操作圖2

這個問題當然會發生,因為我們現在的應用程序是單線程的,因此,當線程執行長任務時,它同時也就不能重畫用戶界面了。

為什么在我們切換應用程序后,問題才發生呢?這是因為當你切換當前應用程序到后臺再切換回前臺時,我們需要重畫整個用戶界面。但是應用程序正在執行長任務,根本沒有時間處理用戶界面的重畫,問題就會發生。

如何解決問題呢?我們需要將長任務放在后臺運行,把用戶界面線程解放出來,因此我們需要另外一個線程。

看完上述內容,你們對C#中如何實現長任務操作有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

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

AI

萝北县| 彝良县| 连云港市| 娄底市| 会理县| 思茅市| 望城县| 伊宁市| 大理市| 崇义县| 西城区| 辰溪县| 英吉沙县| 临泉县| 涪陵区| 桃园县| 乐清市| 蒲江县| 吴忠市| 梅河口市| 邓州市| 荔波县| 屏东县| 板桥市| 阿合奇县| 察哈| 沙坪坝区| 思南县| 翁源县| 竹山县| 平度市| 巢湖市| 东乌| 方城县| 依安县| 日喀则市| 普安县| 大同县| 勐海县| 榕江县| 密云县|