<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      歡迎大家下載試用折桂單點登錄系統, https://www.zheguisoft.com

      后臺線程更新界面的巧妙方法

      在單機版程序的設計中,對于需要較長時間運行的操作,一般都通過后臺線程來完成。如果直接用 UI 線程(在 click 事件中) 運行,則 UI 界面長時間得不到機會重新繪制,會造成程序假死的現象(俗稱“翻白眼”)。

       

      后臺線程更新界面有一些注意事項:

      1. 后臺線程一般不能直接操作界面控件,需要調用 invoke 之類的函數;

      2. 后臺線程更新界面的頻次不能太慢,太慢則也容易讓用戶覺得程序“死掉了”;

      3. 后臺線程更新界面不能太快,一來界面更新太快人眼看不清,容易讓人覺得程序好像失控了,在胡亂顯示一些亂碼;二來,界面更新太快,也會影響整個操作的完成速度,更新界面也是需要 CPU 的。我們知道,電影每秒是 24幀,也就是說,每秒更新畫面 24 次,是可以讓人覺得很流暢的,每秒更新超過 24 次是不必要的。

       

      如果只有問題1 ,則還比較好處理。網上很多講述 invoke 之類的函數。雖然麻煩,也還算在可控范圍。

      對于問題2/3, 則不容易處理。比如,我的程序是批量復制文件,在我的開發計算機上經過測試,每復制 10 個文件,更新一下界面,看起來比較好。程序就這么寫了。

      交付給用戶之后,如果用戶的計算機比我的計算機快了很多,或者慢了很多,則運行界面效果還是不理想:不是更新太快、就是更新太慢。

       

      解決辦法是:

      更新用戶界面,采用定時器 timer ,取名 UpdateUiTimer。后臺線程運行過程中,把運行狀態(百分比、狀態提示詳細字符串、主要步驟字符串)放入全局變量中,UpdateUiTimer 來讀取全局變量并顯示。定時器運行間隔,可以設置成每秒 2 –5 次(我的經驗值)。invoke 之類的函數就不要調用了。這樣可以解決問題。

       

      全局變量類設計,可以為這樣的形式:

      public class GlobalVars
      {

          public static int RunningPercent;

          public static string RunningMainStepStatus;

          public static string RunningDetailStepStatus;

      }

      這里有幾個注意事項:

      a. 多線程對同一個變量的讀寫,如果不加特別控制,是有一點緩存、延遲的。也就是說,一個線程對變量的更改,并不一定會被另一個線程讀到。舉例來說,工作線程先更新完成進度為 5%, 然后更新為 10%,這時候 timer 去讀取進度,有可能讀到 5%,下次才能讀到 10%。不過這點對我們的顯示程序邏輯,不構成多大影響。

      b. 后臺線程運行的時候,最好把界面 disable,不然用戶可能點擊兩次按鈕,或者在后臺在運行的時候,做別的事情,有可能會互相影響。

       

      -------------轉載請注明來源:http://www.rzrgm.cn/jacklondon

      -------------歡迎大家下載試用折桂單點登錄系統, http://zheguisoft.com

      posted @ 2012-04-16 11:09  杰克倫敦塵  Views(7182)  Comments(13)    收藏  舉報
      歡迎大家下載試用折桂單點登錄系統, https://www.zheguisoft.com
      主站蜘蛛池模板: 亚洲码和欧洲码一二三四| 天堂在线精品亚洲综合网| 东莞市| 91亚洲国产成人久久精| 国产精品国三级国产av| 亚洲欧洲一区二区精品| 日本黄页网站免费观看| 亚洲AV熟妇在线观看| 日本黄色三级一区二区三区| 日本精品极品视频在线| 成人拍拍拍无遮挡免费视频| 亚洲精品毛片一区二区| 国产三级精品三级在线观看 | 日韩国产精品无码一区二区三区| 亚洲精品国产免费av| 天天躁夜夜躁狠狠喷水| 国产激情视频在线观看首页| 亚洲欧美牲交| 国产精品久久一区二区三区| 国产精品免费AⅤ片在线观看 | 亚洲国产精品嫩草影院久久 | 国产免费高清69式视频在线观看| bt天堂新版中文在线| 91久久国产成人免费观看| 欧美大屁股喷潮水xxxx| a男人的天堂久久a毛片| 狠狠色丁香婷婷久久综合五月| 国产视频不卡一区二区三区| 鄢陵县| 亚洲最大日韩精品一区| 2019国产精品青青草原| 精品2020婷婷激情五月| 欧美大胆老熟妇乱子伦视频| 男受被做哭激烈娇喘gv视频 | 国产jlzzjlzz视频免费看| 亚洲中文字幕亚洲中文精| 国产精品中文字幕二区| 免青青草免费观看视频在线| 国产精品久久久久久久久久妞妞| 亚洲av色香蕉一二三区| 久久99国产乱子伦精品免费|