【发布时间】:2013-06-05 09:31:42
【问题描述】:
我正在开发一个程序,该程序需要我从另一个线程(而不是创建此 GUI 的主线程)更新我的 windows 窗体 GUI。我尝试使用:
rMainGUI->textBox3->Text = "TestDLL Try";
rMainGUI->textBox3->Update();
但是程序卡在了第一行。 如果我删除第一行,它会在运行时给我一个错误,说:
"Cross-thread operation not valid: Control 'textBox3' accessed from a thread other than the thread it was created on."
我想知道是否有一些简单的、线程安全的 UI 更新功能可以用来更新 GUI 而不会弄乱这些线程?或者,如果有一些命令我可以用来暂停当前线程,转到主线程,更新 GUI,然后返回当前线程?
我对 C++ 有一定的了解,对线程有一点了解。 任何帮助将不胜感激。
【问题讨论】:
-
嗨 Marius,我正在开发的程序是 C++/CLI 窗体应用程序,而不是 C#。我认为解决方案可能会有所不同?@MariusBancila