0

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

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

所以问题是,当我调试更改的值时正在导出,而在运行时却没有。任何人都可以在这方面给我一些建议吗?

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

编辑

我还必须承认,当我将按钮事件方法放在Thread.Sleep(2000)末尾时Update,一切看起来都很好并且工作正常。但是,我的代码审阅者并不喜欢这种方法,而且这种方法也不会让我满意。

再次编辑

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

4

0 回答 0