Grafico usando Chart atualizado em tempo real.

Bom dia pessoal,
Sou iniciante em VB e estou com uma dificuldade, agradeceria qualquer ajuda.
Estou montando um programa que recebe dados vindos pela serial e envia esse dado para o grafico em tempo real, mas nao consigo que seja executado. Sempre aparece a seguinte mensagem "Cross-thread operation not valid: Control 'Chart1' accessed from a thread other than the thread it was created on."
Codigo:
Imports System.IO
Imports System.Windows.Forms.DataVisualization.Charting
Imports System.Threading
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim bytecount As Integer = SerialPort1.BytesToRead
Dim byteBuffer(bytecount) As Byte
Dim Num_Amost As Integer
Dim Ydados(1000) As Double
Dim xdados(1000) As Double
SerialPort1.Read(byteBuffer, 0, bytecount)
For x As Integer = 0 To (bytecount - 1)
Ydados(Num_Amost) = byteBuffer(bytecount)
oEscreve.WriteLine(byteBuffer(x))
xdados(Num_Amost) = 0
Num_Amost = Num_Amost + 1
Next
With Chart1
.Titles.Clear()
.Titles.Add("EMG Canal E")
.Series(0).Points.DataBindXY(xdados, Ydados)
End With
End Sub
Sempre que a serial recebe dados é chamado um Event para que os dados sejam passados para o grafico, mas sempre surge arquele erro.
Poderiam me ajudar com esse problema?
Obrigado
Alexandre
Sou iniciante em VB e estou com uma dificuldade, agradeceria qualquer ajuda.
Estou montando um programa que recebe dados vindos pela serial e envia esse dado para o grafico em tempo real, mas nao consigo que seja executado. Sempre aparece a seguinte mensagem "Cross-thread operation not valid: Control 'Chart1' accessed from a thread other than the thread it was created on."
Codigo:
Imports System.IO
Imports System.Windows.Forms.DataVisualization.Charting
Imports System.Threading
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim bytecount As Integer = SerialPort1.BytesToRead
Dim byteBuffer(bytecount) As Byte
Dim Num_Amost As Integer
Dim Ydados(1000) As Double
Dim xdados(1000) As Double
SerialPort1.Read(byteBuffer, 0, bytecount)
For x As Integer = 0 To (bytecount - 1)
Ydados(Num_Amost) = byteBuffer(bytecount)
oEscreve.WriteLine(byteBuffer(x))
xdados(Num_Amost) = 0
Num_Amost = Num_Amost + 1
Next
With Chart1
.Titles.Clear()
.Titles.Add("EMG Canal E")
.Series(0).Points.DataBindXY(xdados, Ydados)
End With
End Sub
Sempre que a serial recebe dados é chamado um Event para que os dados sejam passados para o grafico, mas sempre surge arquele erro.
Poderiam me ajudar com esse problema?
Obrigado
Alexandre