【问题标题】:Main thread notifying GUI that a variable has been changed C++ clr主线程通知 GUI 变量已更改 C++ clr
【发布时间】:2011-02-12 15:29:37
【问题描述】:

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

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

谢谢。

【问题讨论】:

  • 打电话给ProgressBarControl.repaint()

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


【解决方案1】:

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

ChangeValue中,值发生实际变化后立即触发事件。

这样你封装了问题,你可以使用事件来监听。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    相关资源
    最近更新 更多