Как вызвать поток GUI в VB.NET из SignalR Hub

У меня есть проблема, касающаяся следующего фрагмента кода (C#):

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

Приведенный выше код выполняется в асинхронной подпрограмме в модуле VB.NET. Мне не разрешен доступ к Text-свойству 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 - это платформа, выпущенная Microsoft.

Заранее спасибо!

1 ответ

Вам нужно использовать метод Invoke на элементе управления. Это обеспечит вызов делегата, который вы предоставляете, в главном потоке.

Это одна из причин, почему с WPF лучше работать, когда вы связываете данные и NotifyPropertyChanged триггеры рамки исправят это для вас

Другие вопросы по тегам