91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

得荣县| 潼南县| 沅江市| 长沙县| 耿马| 惠安县| 韶关市| 久治县| 渭源县| 黔西县| 兴业县| 津市市| 伊川县| 临西县| 新津县| 江山市| 武冈市| 绥德县| 深泽县| 泰宁县| 富民县| 乌拉特后旗| 六盘水市| 南阳市| 镇沅| 论坛| 玉环县| 青岛市| 将乐县| 阳谷县| 新田县| 玉林市| 郸城县| 商丘市| 保德县| 平遥县| 临泉县| 开鲁县| 开江县| 沭阳县| 正定县|