В моем приложении есть ошибка, аналогичная здесь, где этот человек столкнулся с той же проблемой. Мое приложение является многопоточным, и рабочий поток обновляет Waveformgraph в пользовательском интерфейсе. Я считаю, что именно в этом моя проблема и почему, периодически и в некоторых случаях, я получаю большой красный крестик по крайней мере на одном из моих объектов графика сигнала при запуске приложения. Из чтения и исследования мне нужно использовать метод Invoke или BeginInvoke? Может ли кто-нибудь лучше объяснить и предоставить образец кода, который имеет отношение к моему коду? Образцы, которые я нашел до сих пор, все еще не позволяют мне понять, как мне это делать или что мне нужно делать. Спасибо за помощь.
Этот код находится в событии щелчка swScopeOnOff в основном потоке.
thread2 = New System.Threading.Thread(AddressOf dataAcquiring)
thread2.Start()
Этот код находится в 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