Raiseevent activa un "Debugger.Runtime.CrosssthradMessageoException"
-
14-11-2019 - |
Pregunta
Tengo una clase en vb.net que tiene un método (llamado CurrentValue) que devuelve un número.También hay un evento que la clase se eleva para indicar que el número ha cambiado.En el manejador de eventos en mi forma, actualizo un cuadro de texto usando el método expuesto.
tipo de así:
Public WithEvents MyClass as New CustomClass
Private Sub MyClass_DataChanged() Handles MyClass.DataChanged
Text1.Text = MyClass.CurrentValue
End Sub
Cuando ejecuto esto, recibo un error "DEBUGGER.RUNTIME.CROSSTHREADSTEMSESSAYSEGEETE".¿Qué podría estar haciendo esto?Estoy instantáneamente a MyClass en la misma forma que contiene el cuadro de texto.
También puedo establecer propiedades del objeto MyClass sin ningún problema.
Solución
OK, esto es lo que hice:
En el formulario, tengo esto para manejar el evento:
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
Esto parece funcionar.Gracias por la sugerencia.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow