主线程通知GUI变量已被更改C ++ clr

时间:2011-02-12 15:29:38

标签: .net multithreading user-interface c++-cli clr

目前我正在开发一个正在慢慢取得进展的C ++ / clr应用程序。当我更改GUI线程中的共享值时,主线程很容易看到它已被更改,因为它将通过循环运行并每次检查更改(或每隔几个,取决于它通过的速度其中包括循环)。

我反过来讨论这个问题。当我的主线程更改共享(和同步)值时,如果没有“消息循环”,我如何通知我的GUI值已被更改我可以看到插入函数进行检查?我一直在调查事件,但我不是很熟悉它们以及它们的线程安全性,但看起来好像使用它们可能是我唯一的选择。我将如何解决我的困境?

感谢。

1 个答案:

答案 0 :(得分:1)

创建一个名为 ChangeValue 的方法,然后重构您正在讨论的所有值,以便使用 ChangeValue 进行更改。

ChangeValue 中,在实际更改值后立即触发事件。

这样您就可以封装问题,并且可以使用该事件进行收听。