我在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工作的代码? –