我在WPF中寫了一些東西,我需要在後臺(在其他線程上)執行一些計算,所以它不會影響UI的性能。在後臺執行計算(線程)
我有一個Window類,我正在做一些UI邏輯,這就是我稱之爲新的Calculations()
實例的地方。在Window中,我還得到了一個List<CalculationFormulas>
(每個CalculationFormula是需要運行的計算)。有時CalculationFormula's也需要同時運行。如上所述,我在構建計算對象時將該列表傳遞給計算。
在Calculations構造函數中,我異步啓動工作線程以啓動列表中的第一個CalculationFormula,然後在工作線程異步啓動列表中的下一個CalculationFormula的適當位置,依此類推,直到列表爲空(因爲計算完成時CalculationFormula從此列表中移除)。
我的問題:
1)如何發送當前正在運行的計算清單回窗口?即使它們都運行在不同的線程中,是否有可能在計算中有一個屬性,例如List<CalculationFormula>
RunningCalculations,我從每個線程更新...然後從Window調用Calculations.RunningCalculations
? 2)如果我傳遞給Calculations的List<CalculationFormula>
最初發生更改,那麼如何將新列表傳遞給Calculations,以便所有當前運行的線程都知道它已更改。我需要以某種方式觸發事件嗎? 3)每次計算完成後,我怎樣才能確保Window知道這個(所以它可以反映在UI中)?我將如何設置一個事件,以便每個線程在關閉之前觸發事件(即計算完成時)?
謝謝
謹慎分享您在atm工作的代碼? –