RaiseEvent触发“Debugger.Runtime.CrossThreadMessagingException”

时间:2011-03-29 18:31:36

标签: vb.net raiseevent

我在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 :(得分:0)

好的,这就是我的所作所为:

在我有这个处理事件的形式:

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

这似乎有效。谢谢你的建议。