2012-12-20 156 views
0

我需要一些建議。我正在製作一個小應用程序,其中有幾項功能需要執行。我想顯示每個函數的進度,因此使用進度條。在谷歌搜索之後,我發現使用後臺工作線程和進度條是很好的。這裏是我想要實現的功能:後臺工作線程進度條

1)創建值X.
2)創建Y並寫入閃存驅動器。同樣使用Y來加密X.將結果寫回數據庫

您會如何建議我繼續使用它?在一個單一的後臺工作線程中完成所有工作嗎?或者爲db進程使用不同的後臺工作線程?

+0

爲什麼使用多個不同的後臺線程你的過程不能平行? (我的意思是你不能用y加密x,在創建y之前,結果和數據庫一樣)。 –

+0

我會在後臺工作人員的所有工作,但當然分爲幾種方法。 –

+0

我該如何接受答案? – coffeeak

回答

2

我會建議創建一個只顯示(和更新)進度條的工作線程。此進度條應該從靜態全局變量中獲取值,並且您應該在應用程序中隨意設置這些變量。這些變量只是顯示處理項目或百分比或處理完成的整數。例如,如果您分別爲X和Y分別設置線程,則每個線程都將在自己的處理期間設置全局靜態變量。進度條線程將在進度條上設置這些值。

2

就像Bart Teunissen(參見問題評論),我會用一個BackgroundWorker。您可以使用ReportProgress-方法更新ProgressBar。 (但請注意,如果您正在開發Windows Forms應用程序,則可能無法直接更新ProgressBar,因爲您將不在UI線程中。)