RaiseEvent запускает «Debugger.Runtime.CrossThreadMessagingException» - PullRequest
0 голосов
/ 29 марта 2011

У меня есть класс в 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 Ответ

0 голосов
/ 29 марта 2011

ОК, вот что я сделал:

В той форме, в которой у меня есть это для обработки события:

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

Это похоже на работу.Спасибо за предложение.

...