1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
Private _SortieThreadRequise As Boolean
Private _Thread As System.Threading.Thread
Public Sub DemarreThread()
_Thread = New System.Threading.Thread(AddressOf Traitement)
_Thread.Start()
End Sub
Private Sub Traitement()
While _SortieThreadRequise = False
Try
'traitement dans un try catch pour etre sur de pas sortir sur un bug
' éventuellement un System.Threading.Thread.Sleep(x)
Catch ex As Exception
'enregistrer les erreurs, ca le fait, ca aide à corriger les bugs
End Try
End While
End Sub
Public Sub ArreteThread()
If _Thread Is Nothing Then Exit Sub
If _Thread.IsAlive = False Then Exit Sub
_SortieThreadRequise = True
_Thread.Join(3000) ' on attend que le thread s'arrete (qu'il passe sur le end sub en gros) ou que 3 secondes se soient écoulées
If _Thread.IsAlive = False Then Exit Sub ' si le booléen à fait son effet, IsAlive vaut False
_Thread.Interrupt() ' les gros moyens
End Sub |
Partager