中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

五莲县| 丰城市| 华安县| 大方县| 丹巴县| 芦山县| 荆州市| 密山市| 冀州市| 宾川县| 乌审旗| 祁东县| 罗城| 新蔡县| 岚皋县| 九江市| 申扎县| 贵德县| 治县。| 琼海市| 大石桥市| 胶州市| 蕉岭县| 台江县| 东源县| 郑州市| 东明县| 临武县| 马鞍山市| 宁明县| 冷水江市| 博白县| 齐齐哈尔市| 朔州市| 韩城市| 红安县| 潜江市| 莆田市| 丁青县| 竹北市| 原阳县|