值在调试时更新但不在运行时更新

时间:2013-05-06 07:07:18

标签: c# debugging c#-4.0 runtime updates

我在这里解释一个奇怪的问题。我有一个多屏幕的向导。在我的第一个屏幕中,我正在读取一个XML文件并将其读取并将其值显示/用于屏幕。在其中一个屏幕中,我正在更改这些值,然后按Update按钮更新数据。但是在向导结束时,当我单击完成时,更改的值未正确保存。我已经用代码确认了这一点,导出数据时没有出现更改的值。

但是当我开始调试时,真正的踢了。直到现在我才在导出数据时进行调试。但后来我开始从向导开始调试。我注意到在调试时,当我在更改值后点击Update按钮时,这次更新了值并导出了正确的数据。但是当我在运行时运行应用程序或直接在导出过程中放置​​调试点时,不会反映更改的数据。

所以问题是,当我调试正在导出更改的值时,在运行时它不会。任何人都可以就此提出建议吗?

但是后来我注意到有时候在运行时它会更新,有时候不会。但是当我调试时它总会更新。如果重要,我正在使用Winforms和MVP。

修改

我还必须承认,当我将Thread.Sleep(2000)放在Update按钮事件方法的末尾时,一切看起来都很好并且工作正常。但是,我的代码审查人员并不赞赏这种方式,而且这种方法并不令我满意。

再次编辑

Update按钮使用主线程并更新同一线程中的值。但是,当我点击完成时,它会创建BackgroundWorker并从那里运行ExportData方法。我目前的观察和知识在那里看不到更多的线索。

0 个答案:

没有答案