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