目前我正在开发一个正在慢慢取得进展的C ++ / clr应用程序。当我更改GUI线程中的共享值时,主线程很容易看到它已被更改,因为它将通过循环运行并每次检查更改(或每隔几个,取决于它通过的速度其中包括循环)。
我反过来讨论这个问题。当我的主线程更改共享(和同步)值时,如果没有“消息循环”,我如何通知我的GUI值已被更改我可以看到插入函数进行检查?我一直在调查事件,但我不是很熟悉它们以及它们的线程安全性,但看起来好像使用它们可能是我唯一的选择。我将如何解决我的困境?
感谢。
答案 0 :(得分:1)
创建一个名为 ChangeValue 的方法,然后重构您正在讨论的所有值,以便使用 ChangeValue 进行更改。
在 ChangeValue 中,在实际更改值后立即触发事件。
这样您就可以封装问题,并且可以使用该事件进行收听。