我在做一個應用程序,其中包含讀取圖像文件並將其顯示在我自己設計的用戶控件中。這種或其他CPU密集型活動會導致gui故障和/或無響應。如何防止CPU密集型活動掛起或放慢.NET中的GUI
我很清楚,我應該把這些CPU密集型活動放在另一個線程中,但到目前爲止我還沒有找到一篇文章或示例項目,它會給我明確的指導來處理這些問題。
任何人都可以指引我放置在哪裏我可以找到這些信息?
在此先感謝。
MTH
我在做一個應用程序,其中包含讀取圖像文件並將其顯示在我自己設計的用戶控件中。這種或其他CPU密集型活動會導致gui故障和/或無響應。如何防止CPU密集型活動掛起或放慢.NET中的GUI
我很清楚,我應該把這些CPU密集型活動放在另一個線程中,但到目前爲止我還沒有找到一篇文章或示例項目,它會給我明確的指導來處理這些問題。
任何人都可以指引我放置在哪裏我可以找到這些信息?
在此先感謝。
MTH
Ian Griffiths爲沒有BackgroundWorker的以前版本的.NET寫了一個excellent answer to your question。一旦你讀過這篇文章,你應該繼續前進this essay on doing background work and using BackgroundWorker。
看看Background Worker這個類。
沒有說明如何在提供的鏈接:)
後臺工作是製作GUI響應一個不錯的選擇使用它,以及一個樣本。
1-背景工作者是基於事件的類。
2-它引發ProgressReport,DoWork,WokerCompleted等事件。
3-你只需要連接這些事件,你很好去。
4-如果您剛開始使用線程概念,那麼使用和推薦起來非常簡單。
使用BackgroundWorker的建議很好,但也要記住'閱讀圖像文件'通常不是'cpu密集型',它是I/O密集型的。這不會改變你從UI線程中獲得它的動機,但你應該牢記這一差異。 – 2010-11-23 08:58:50
@威爾迪恩 - 當然,但是所有的I/O操作之後都是處理被搶奪的數據,並且讓CPU保持忙碌狀態,我並不是說我喜歡忽略I/O,但我認爲它不那麼重要。 – MoreThanChaos 2010-11-23 16:44:48