2015-04-28 3 views
0

Я использую приложение Windows Form. В этом случае у меня есть класс, который состоит из 5 различных методов. Все они заполняют частных членов из разных источников, используя нить.Массив вызовов методов с использованием потока

Для этого я использую следующий фрагмент кода для вызова метода

Dim threadForMethod1 As Threading.Thread 
threadForMethod1 = New Threading.Thread(AddressOf Method1) 
threadForMethod1.Start() 

Теперь я хочу, чтобы добавить включения/выключения для резьбы. Кстати, если я выключу коммутатор, все методы должны выполняться с использованием основного потока.

Каков наилучший способ его реализации.

ответ

0

Вы можете использовать следующий класс:

Imports System.Threading 

Public Class ThreadHandler 

    Dim t1 As New Thread(AddressOf M1) 
    Dim t2 As New Thread(AddressOf M2) 

    Public Sub M1() 
     Thread.Sleep(3000) 
     MsgBox("M1") 
    End Sub 

    Public Sub M2() 
     Thread.Sleep(3000) 
     MsgBox("M2") 
    End Sub 

    Public Sub StartAll() 
     If t1.ThreadState <> ThreadState.Unstarted Then 
      t1 = New Thread(AddressOf M1) 
     End If 
     If t2.ThreadState <> ThreadState.Unstarted Then 
      t2 = New Thread(AddressOf M2) 
     End If 

     t1.Start() 
     t2.Start() 

    End Sub 

    Public Sub StopAll() 

     t1.Abort() 
     t2.Abort() 

    End Sub 

End Class 

использовать вышеупомянутую Класс:

Private th As New ThreadHandler() 

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    th.StartAll() 
End Sub 

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
    th.StopAll() 
End Sub 
Смежные вопросы