RaiseEvent запускает "Debugger.Runtime.CrossThreadMessagingException"
У меня есть класс в VB.NET, который имеет метод (называемый CurrentValue), который возвращает число. Существует также событие, которое вызывает класс, чтобы указать, что число изменилось. В обработчике событий в моей форме я обновляю текстовое поле, используя открытый метод.
Вроде как это:
Public WithEvents MyClass as New CustomClass
Private Sub MyClass_DataChanged() Handles MyClass.DataChanged
Text1.Text = MyClass.CurrentValue
End Sub
Когда я запускаю это, я получаю ошибку "Debugger.Runtime.CrossThreadMessagingException". Что может делать это? Я создаю экземпляр MyClass в той же форме, которая содержит текстовое поле.
Я также могу без проблем установить свойства объекта MyClass.
1 ответ
Решение
Хорошо, вот что я сделал:
В форме у меня есть это для обработки события:
Public Delegate Sub MyClassDataChangedDelegate()
Sub MyClassDataChanged() Handles MyClass.DataChanged
If Me.InvokeRequired Then
Me.Invoke(New MyClassDataChangedDelegate(AddressOf MyClassDataChanged))
Else
Me.Text1.Text = MyClass.CurrentValue
End If
End Sub
Это похоже на работу. Спасибо за предложение.