.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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5