¿Método de invocación para la aplicación multihilo?

Tengo un error en mi aplicación que es igual aaquí que esta persona se encontraba con el mismo problema. Mi aplicación tiene varios subprocesos donde el subproceso de trabajo está actualizando el Waveformgraph en la interfaz de usuario. Creo que ahí es donde está mi problema y por qué, periódicamente, y ocasionalmente obtengo una gran X roja en al menos uno de mis objetos de forma de onda cuando ejecuto la aplicación. De la lectura y la investigación, ¿necesito usar un método Invoke o BeginInvoke? ¿Alguien puede explicar mejor y proporcionar un código de muestra que sea relevante para mi código? Las muestras que he encontrado hasta ahora todavía me tienen confuso sobre cómo necesito hacer esto o qué debo hacer. Gracias por tu ayuda.

Este código está en el evento de clic swScopeOnOff, hilo principal.

  thread2 = New System.Threading.Thread(AddressOf dataAcquiring)
  thread2.Start()

Este código está en Sub de adquisición de datos

  Public Sub dataAcquiring()
    'While Scope switch is on, stream each Ai channel's data continuously to its respective WaveForm graph
    Do While swScopeOnOff.Value = True
            data = reader.ReadWaveform(readRate)
            i = 0
            For Each WaveformGraph In WFGS
                WaveformGraph.PlotWaveformAppend(data(i)) 'This line is updating the UI's waveform graphs
                i += 1
            Next
            i = 0
    Loop
End Sub

Respuestas a la pregunta(1)

Su respuesta a la pregunta