.NET 3.x Приостановить/продолжить работу потока - Visual Basic .NET
Формулировка задачи:
Доброго! не удается приостановить работу потока (resume/suspend - не работает)
поток работает с внешним приложением с некоторыми непредсказуемыми случаями и что бы не начинать по новой.
все что удалось найти (не работает - поток продолжает работу)https://msdn.microsoft.com/en-us/lib...aithandle.aspxhttps://msdn.microsoft.com/en-us/lib...e.waitone.aspx
сделал так но цикл выполняется полностью... и далее начинается с начало
Решение задачи: «.NET 3.x Приостановить/продолжить работу потока»
textual
Листинг программы
Private Sub ThreadProc(manualEvent As Object)
'play / pause
Dim ev As ManualResetEvent = DirectCast(manualEvent, ManualResetEvent)
While ev.WaitOne()
MsgBox("1")
Thread.Sleep(2000)
If ev.WaitOne = False Then Exit Sub
MsgBox("2")
Thread.Sleep(2000)
If ev.WaitOne = False Then Exit Sub
MsgBox("3")
Thread.Sleep(2000)
End While
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
'start and check status
If th1.ThreadState = ThreadState.Running Or th1.ThreadState = ThreadState.WaitSleepJoin Then
Exit Sub
Else
th1.Start(manualEvent)
End If
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
'stop and exit
th1.Abort()
Application.Exit()
End Sub