Compare commits
2 Commits
main
...
EmmanueleVersion
| Author | SHA1 | Date | |
|---|---|---|---|
| 9ad019b6fd | |||
| 4f862b2c8d |
@@ -222,37 +222,38 @@ Public Class ProcMan
|
||||
If Not bOk Then Thread.Sleep(10)
|
||||
End While
|
||||
|
||||
If bOk AndAlso (IsNothing(ThreadList) OrElse ThreadList.Count = 0 OrElse IsNothing(ThreadList(0))) Then
|
||||
ThreadList = New Thread(m_MaxCamInstances - 1) {}
|
||||
ThreadDataList = New ThreadData(m_MaxCamInstances - 1) {}
|
||||
For nThreadIndex = 0 To m_MaxCamInstances - 1
|
||||
Dim ThreadId As Integer = nThreadIndex
|
||||
ThreadList(nThreadIndex) = New Thread(Sub()
|
||||
ThreadFunction(ThreadId)
|
||||
End Sub)
|
||||
ThreadList(nThreadIndex).SetApartmentState(ApartmentState.STA)
|
||||
' avvio thread di gestione della macchina che avvia la connessione
|
||||
ThreadList(nThreadIndex).Start()
|
||||
Thread.Sleep(10)
|
||||
Next
|
||||
End If
|
||||
' se qualche processo in stop, lo faccio ripartire
|
||||
For ThreadIndex = 0 To ThreadList.Count - 1
|
||||
Dim Thread = ThreadList(ThreadIndex)
|
||||
If Thread.ThreadState = ThreadState.Stopped Then
|
||||
Thread.Abort()
|
||||
Dim ThreadId As Integer = ThreadIndex
|
||||
Thread = New Thread(Sub()
|
||||
ThreadFunction(ThreadId)
|
||||
End Sub)
|
||||
End If
|
||||
If bOk AndAlso (IsNothing(ThreadList) OrElse ThreadList.Count = 0 OrElse IsNothing(ThreadList(0))) Then
|
||||
ThreadList = New Thread(m_MaxCamInstances - 1) {}
|
||||
ThreadDataList = New ThreadData(m_MaxCamInstances - 1) {}
|
||||
For nThreadIndex = 0 To m_MaxCamInstances - 1
|
||||
Dim ThreadId As Integer = nThreadIndex
|
||||
ThreadList(nThreadIndex) = New Thread(Sub()
|
||||
ThreadFunction(ThreadId)
|
||||
End Sub)
|
||||
ThreadList(nThreadIndex).SetApartmentState(ApartmentState.STA)
|
||||
' avvio thread di gestione della macchina che avvia la connessione
|
||||
ThreadList(nThreadIndex).Start()
|
||||
Thread.Sleep(10)
|
||||
Next
|
||||
If n30SecCounter <= 30 Then
|
||||
n30SecCounter += 1
|
||||
Else
|
||||
n30SecCounter = 1
|
||||
End If
|
||||
' se qualche processo in stop, lo faccio ripartire
|
||||
For ThreadIndex = 0 To ThreadList.Count - 1
|
||||
Dim Thread = ThreadList(ThreadIndex)
|
||||
If Thread.ThreadState = ThreadState.Stopped AndAlso Thread.ThreadState = ThreadState.Aborted AndAlso
|
||||
Thread.ThreadState = ThreadState.Suspended Then
|
||||
Thread.Abort()
|
||||
Dim ThreadId As Integer = ThreadIndex
|
||||
Thread = New Thread(Sub()
|
||||
ThreadFunction(ThreadId)
|
||||
End Sub)
|
||||
End If
|
||||
Thread.Sleep(1000)
|
||||
Next
|
||||
If n30SecCounter <= 30 Then
|
||||
n30SecCounter += 1
|
||||
Else
|
||||
n30SecCounter = 1
|
||||
End If
|
||||
Thread.Sleep(1000)
|
||||
|
||||
End While
|
||||
|
||||
@@ -755,18 +756,17 @@ Public Class ProcMan
|
||||
UpdateThreadCurrentStatus()
|
||||
End Sub
|
||||
|
||||
Private Sub txtNumThread_TextChanged(sender As Object, e As EventArgs) Handles txtNumThread.TextChanged
|
||||
Dim numReq As Integer = 1
|
||||
Integer.TryParse(txtNumThread.Text, numReq)
|
||||
' controllo se cambiato il num thread
|
||||
If numReq <> m_MaxCamInstances Then
|
||||
If m_bStopProcess = False Then
|
||||
stopAllThreads()
|
||||
End If
|
||||
' imposto
|
||||
SetMaxCamInstances(numReq)
|
||||
End If
|
||||
End Sub
|
||||
Private Sub txtNumThread_TextChanged(sender As Object, e As EventArgs) Handles txtNumThread.TextChanged
|
||||
Dim numReq As Integer = 1
|
||||
Integer.TryParse(txtNumThread.Text, numReq)
|
||||
' controllo se cambiato il num thread
|
||||
If numReq <> m_MaxCamInstances Then
|
||||
stopAllThreads()
|
||||
Thread.Sleep(100)
|
||||
SetMaxCamInstances(numReq)
|
||||
'startAllThreads()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
Private isUpdatingThreads As Boolean = False
|
||||
@@ -913,16 +913,22 @@ Public Class ProcMan
|
||||
CheckStartAutoRestart()
|
||||
End Sub
|
||||
|
||||
Private Sub CheckStartAutoRestart()
|
||||
TimerCheck.Enabled = chkAutoRestart.Checked
|
||||
If chkAutoRestart.Checked Then
|
||||
TimerCheck.Start()
|
||||
Task.Delay(500)
|
||||
Private Sub CheckStartAutoRestart()
|
||||
TimerCheck.Enabled = chkAutoRestart.Checked
|
||||
If chkAutoRestart.Checked Then
|
||||
If m_ExecutionThread.ThreadState = ThreadState.Aborted OrElse m_ExecutionThread.ThreadState = ThreadState.Stopped OrElse
|
||||
m_ExecutionThread.ThreadState = ThreadState.Suspended Then
|
||||
stopAllThreads()
|
||||
Thread.Sleep(200)
|
||||
m_ExecutionThread.Abort()
|
||||
Thread.Sleep(200)
|
||||
startAllThreads()
|
||||
Else
|
||||
TimerCheck.Stop()
|
||||
End If
|
||||
End Sub
|
||||
End If
|
||||
TimerCheck.Start()
|
||||
Else
|
||||
TimerCheck.Stop()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub TimerCheck_Tick(sender As Object, e As EventArgs) Handles TimerCheck.Tick
|
||||
restartAll()
|
||||
|
||||
Reference in New Issue
Block a user