필자는 CORE I7이 6 스레드로 프로그램을 작성했지만 잘 실행되지만 CELERON을 실행하면 작동하지 않습니다. 스레드가 작동을 멈추는 것 같습니다.성능 향상을 위해 VB.NET 2013에서 프로그램을 어떻게 향상시킬 수 있습니까?
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Timer1.Enabled = True
CheckForIllegalCrossThreadCalls = False
trd = New Thread(AddressOf ThreadTask)
barreras_trd = New Thread(AddressOf barreras)
sensores_trd = New Thread(AddressOf sensores)
convierte_trd = New Thread(AddressOf convierte)
emite_tiquet_trd = New Thread(AddressOf tiquet)
actualiza_trd = New Thread(AddressOf actualiza_grilla)
trd.IsBackground = True
barreras_trd.IsBackground = True
sensores_trd.IsBackground = True
convierte_trd.IsBackground = True
emite_tiquet_trd.IsBackground = True
actualiza_trd.IsBackground = True
trd.Start()
barreras_trd.Start()
sensores_trd.Start()
convierte_trd.Start()
emite_tiquet_trd.Start()
actualiza_trd.Start()
Me.DataGridView1.FirstDisplayedScrollingRowIndex = Me.DataGridView1.RowCount - 1
'Select the last row.
Me.DataGridView1.Rows(Me.DataGridView1.RowCount - 1).Selected = True
End Sub
'CheckF orIllegalCrossThreadCalls = False'는 매우 나쁜 습관입니다. vb.net에서 스레드를 사용하는 방법과 다른 스레드에서 GUI를 업데이트하는 방법에 대한 연구를하십시오. 여기에서 시작할 수 있습니다. https://msdn.microsoft.com/en-us/library/aa289496(v=vs.71).aspx – jonathana
각 위협에 대해 별도의 스레드를 사용하지 마십시오. 위협에 대해 하나의 스레드를 사용하고 각각의 스레드를 반복하고 어떻게 든 업데이트하십시오. 우리가 얻을 수있는만큼 도움이되는 코드를 보지 않아도됩니다! –
게시 한 코드 부분에는 동기화 교착 상태 문제가있을 수 있지만 문제는 아닙니다. 이런 식으로 답할 수는 없습니다. –