我确信这是一个非常直截了当的问题。我正在使用C ++ / CLI编写一个小型Windows窗体应用程序。当表单初始化时,我启动一个将处理一些代码的线程。当执行线程中的代码时,我希望线程以某种方式更新窗口底部状态栏中的文本。所以我在想这样的事情:
这是一种合理的方式吗?如果是这样,我如何从线程内更新状态栏?也许有更聪明的方法来实现这个目标?
答案 0 :(得分:3)
声明一个类似于更改给定字符串的状态文本的方法:
private: void UpdateStatus(String^ msg) {
statusBar.Text = msg;
}
并从另一个帖子中使用Invoke
:
Invoke(gcnew Action<String^>(this, &Form1::UpdateStatus), "message");
Invoke
将使用UI线程上的指定参数调用给定的委托。