我正在尝试在来自WCF回调的标签中显示消息。我的标签是在Windows窗体应用程序中。 问题是触发回调时标签没有设置。我试图使用消息框而不是标签,它的工作原理。没有什么代码可以展示。这是回调函数。
public void GetData(string message)
{
label1.Text = message; // This doesn't work
MessageBox.Show(message); // This works fine
}
任何人都可以告诉为什么标签没有在回调函数中设置。
答案 0 :(得分:0)
回调事件在非GUI 线程上触发,您可以访问创建它们的GUI线程中的 GUI 控件。您可以将Control.Invoke与MethodInvoker一起使用来访问回调事件处理程序中的控件(label
)。
public void GetData(string message)
{
label1.Invoke((MethodInvoker) delegate
{
label1.Text = message;
});
MessageBox.Show(message);
}