2010-01-06 5 views
2

Actuellement je crée un fil de la façon suivante (la voie normale)Comment créer un nombre dynamique de threads?

Public loginThread As Thread 
Public loginThreadStart As New ThreadStart(AddressOf LogIntoWhatever) 
Public callLoggedIn As New MethodInvoker(AddressOf loggedIn) 

Cependant, ce que je veux être en mesure de faire quelque chose le long des lignes de (cela ne fonctionne évidemment pas et est tout à fait pseudocode)

dim i as integer = 0 
for i = 0 to i = 25 
Public loginThread(i) as Thread 
Public loginThreadStart(i) as New ThreadStart(AddressOf LogIntoWhatever) 
next i 
Public callLoggedIn as new MethodInvoker(AddressOf loggedIn) 

Où je pourrais changer 25 à tout ce que je voulais et que ce nombre de threads créés. Ils seraient tous en train de courir un sous-marin identique qui ne se fait aucun appel les uns aux autres, ils n'ont pas besoin de se connaître les uns les autres. Est-ce que quelque chose comme ça est possible? Si oui, la direction vers une solution aiderait.

Merci d'avance.

Répondre

2

Effectuez les opérations suivantes

Public Function RunThreads(count as Integer, start As ThreadStart) As List(Of Thread) 
    Dim list as New List(Of Thread) 
    For i = 0 to count -1 
    Dim thread = new Thread(start) 
    thread.Start() 
    list.Add(thread) 
    Next 
    Return list 
End Function 

ou en utilisant le pool de threads

Public Sub RunThreads(count as Integer, callBack as WaitCallBack) 
    For i = 0 To count-1 
    ThreadPool.QueueUserWorkItem(callBack) 
    Next 
End Sub 
+0

Cela a malheureusement une erreur sur le "Retour fil". 'Thread' est un type et ne peut pas être utilisé comme une expression. – bahhumbug

+0

a changé le retour à la liste et cela fonctionne comme prévu maintenant. Merci! – bahhumbug

0

Here est un exemple utilisant un pool de threads simple.

Questions connexes