如何从SignalR Hub调用VB.NET中的GUI线程

时间:2014-11-30 20:02:47

标签: vb.net delegates signalr invoke

关于下面一段代码(C#)我有一个问题:

stockTickerHub.On("notify", () =>
Context.Post(delegate
{
    mainForm.textBox1.Text += "Notified!\n";
}, null)
);

上面的代码在VB.NET模块中的异步Sub中运行。我不能访问textBox1的Text-Property。上面的代码在VB.NET中是怎么样的?

我试过了:

myHub.On(Of String, String)("addMessagea", _
            Sub(nam, param)
                mainForm.textBox1.Text = param.ToString()
                Console.WriteLine("Should have append '" + nam.ToString() + param.ToString() + "'")
            End Sub)

SignalR是微软发布的框架。

提前致谢!

1 个答案:

答案 0 :(得分:0)

您需要在控件上使用Invoke方法。它将确保在主线程上调用您提供的委托。

这是WPF更好用的原因之一,当你进行数据绑定和NotifyPropertyChanged触发时,框架会为你解决这个问题