【问题标题】:How to invoke GUI thread in VB.NET from SignalR Hub如何从 SignalR Hub 调用 VB.NET 中的 GUI 线程
【发布时间】:2014-11-30 20:02:46
【问题描述】:

我对以下代码 (C#) 有疑问:

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

以上代码在 VB.NET 模块中的异步 Sub 中运行。我不允许访问 textBox1 的文本属性。上面的代码在 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 是微软发布的框架。

提前致谢!

【问题讨论】:

  • 为什么要在模块中运行?它可以从主窗体运行吗?
  • 不幸的是,应该有多个表单可以访问它。

标签: vb.net delegates signalr invoke


【解决方案1】:

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

这是 WPF 更易于使用的原因之一,当您进行数据绑定和 NotifyPropertyChanged 触发器时,框架将为您解决此问题

【讨论】:

    猜你喜欢
    • 2021-05-20
    • 1970-01-01
    • 2018-04-04
    • 2019-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多