Invocar método para aplicação multithread?

Eu tenho um bug no meu aplicativo que é o mesmo queaqui que essa pessoa estava enfrentando o mesmo problema. Meu aplicativo é multiencadeado onde o encadeamento do trabalhador está atualizando o Waveformgraph na interface do usuário. Acredito que é aí que está o meu problema e por que, periodicamente, e por ocasião, recebo um grande X vermelho em pelo menos um dos meus objetos waveformgraph ao executar o aplicativo. Na leitura e na pesquisa, preciso usar o método Invoke ou BeginInvoke? Alguém pode explicar melhor e fornecer um código de exemplo que seja relevante para o meu código? As amostras que eu encontrei até agora ainda me deixam nebuloso sobre como preciso fazer isso ou o que preciso fazer. Obrigado pela ajuda.

Este código está no evento de clique swScopeOnOff, segmento principal.

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

Este código está em dataAcquiring Sub

  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

questionAnswers(1)

yourAnswerToTheQuestion