
Excepción del tipo "System.InvalidOperationException" en System.Windows.Forms.dll
Publicado por Juanjo (2 intervenciones) el 11/03/2016 22:38:52
Buenas noches,
llevo poco tiempo programando, y menos aún en este entorno.
Estoy con Visual Basic 2008 Express Edition. Quiero recibir mediante el puerto serie unos datos del encoder conectado a un Arduino Uno.
El código para recibir datos es el siguiente,
Y quiero mostrar el valor recibido en un TextBox.
Al compilar me da este error y no tengo ni idea de como solventarlo.
No se controló System.InvalidOperationException
Message="Operación no válida a través de subprocesos: Se tuvo acceso al control 'TextBox1' desde un subproceso distinto a aquel en que lo creó."
Source="System.Windows.Forms"
StackTrace:
en System.Windows.Forms.Control.get_Handle()
en System.Windows.Forms.Control.set_WindowText(String value)
en System.Windows.Forms.TextBoxBase.set_WindowText(String value)
en System.Windows.Forms.Control.set_Text(String value)
en System.Windows.Forms.TextBoxBase.set_Text(String value)
en System.Windows.Forms.TextBox.set_Text(String value)
en SErie.Form1.SerialPort1_DataReceived(Object sender, SerialDataReceivedEventArgs e) en C:\Documents and Settings\Juanjo\Mis documentos\SErie\SErie\Form1.vb:línea 66
en System.IO.Ports.SerialPort.CatchReceivedEvents(Object src, SerialDataReceivedEventArgs e)
en System.IO.Ports.SerialStream.EventLoopRunner.CallReceiveEvents(Object state)
en System.Threading._ThreadPoolWaitCallback.WaitCallback_Context(Object state)
en System.Threading.ExecutionContext.runTryCode(Object userData)
en System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
en System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
en System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
en System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)
InnerException:
Llevo varios días dando vueltas al tema y me supera. Si alguien puede orientarme le estaría muy agradecido. Gracias de antemano.
llevo poco tiempo programando, y menos aún en este entorno.
Estoy con Visual Basic 2008 Express Edition. Quiero recibir mediante el puerto serie unos datos del encoder conectado a un Arduino Uno.
El código para recibir datos es el siguiente,
1
2
3
4
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
buffer = SerialPort1.ReadExisting.Trim
TextBox1.Text = buffer
End Sub
Y quiero mostrar el valor recibido en un TextBox.
Al compilar me da este error y no tengo ni idea de como solventarlo.
No se controló System.InvalidOperationException
Message="Operación no válida a través de subprocesos: Se tuvo acceso al control 'TextBox1' desde un subproceso distinto a aquel en que lo creó."
Source="System.Windows.Forms"
StackTrace:
en System.Windows.Forms.Control.get_Handle()
en System.Windows.Forms.Control.set_WindowText(String value)
en System.Windows.Forms.TextBoxBase.set_WindowText(String value)
en System.Windows.Forms.Control.set_Text(String value)
en System.Windows.Forms.TextBoxBase.set_Text(String value)
en System.Windows.Forms.TextBox.set_Text(String value)
en SErie.Form1.SerialPort1_DataReceived(Object sender, SerialDataReceivedEventArgs e) en C:\Documents and Settings\Juanjo\Mis documentos\SErie\SErie\Form1.vb:línea 66
en System.IO.Ports.SerialPort.CatchReceivedEvents(Object src, SerialDataReceivedEventArgs e)
en System.IO.Ports.SerialStream.EventLoopRunner.CallReceiveEvents(Object state)
en System.Threading._ThreadPoolWaitCallback.WaitCallback_Context(Object state)
en System.Threading.ExecutionContext.runTryCode(Object userData)
en System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
en System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
en System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
en System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)
InnerException:
Llevo varios días dando vueltas al tema y me supera. Si alguien puede orientarme le estaría muy agradecido. Gracias de antemano.
Valora esta pregunta


0