Hallo,
ich habe ein Problem beim Erstellen von Threads und würde Euch darum um Hilfe bitten. Die Suche Funktion habe ich bereits versucht allerdings habe ich dazu nicht passendes gefunden (sollte jemand den Link zu dem Thema haben wäre ich auch dankbar!).
Ich verwendet vb.net Express 2008 und möchte gerne über eine ComboBox (welche mit Zahlen gefüllt ist) vorgeben, wieviele Threads gestartet werden sollen, weiter unten im Text der Quellcode dazu. In dem Thread schreibe ich ein Logfile, d.h. wenn ich in der ComboBox 5 ausgewählt habe sollten 5 Threads gestartet werden und jeweils ein Logfile (simultan) erstellt werden.
Was mich nun irritiert ist, dass ich die Funktion "MsgBox(...)" verwenden muss, da sonst nur ein Thread (nämlich nur der, den ich in der ComboBox auswähle) gestartet wird.
Ich verstehe also nicht, was für einen Unterschied es macht (codetechnisch) ob man ein MsgBox drin hat oder nicht. Mit MsgBox funktioniert es zwar, aber man darf dann x-Male auf "OK" klicken, was auch nicht elegant ist.
Ausserdem verfälscht es die Ergebnisse, da die Threads nicht simultan sondern mehr oder minder in sequence gestartet werden.
Für jede Hilfe die zur Auflösung dieses Falles dienlich ist wäre ich sehr dankbar
Liebe Grüße
michi
ich habe ein Problem beim Erstellen von Threads und würde Euch darum um Hilfe bitten. Die Suche Funktion habe ich bereits versucht allerdings habe ich dazu nicht passendes gefunden (sollte jemand den Link zu dem Thema haben wäre ich auch dankbar!).
Ich verwendet vb.net Express 2008 und möchte gerne über eine ComboBox (welche mit Zahlen gefüllt ist) vorgeben, wieviele Threads gestartet werden sollen, weiter unten im Text der Quellcode dazu. In dem Thread schreibe ich ein Logfile, d.h. wenn ich in der ComboBox 5 ausgewählt habe sollten 5 Threads gestartet werden und jeweils ein Logfile (simultan) erstellt werden.
Was mich nun irritiert ist, dass ich die Funktion "MsgBox(...)" verwenden muss, da sonst nur ein Thread (nämlich nur der, den ich in der ComboBox auswähle) gestartet wird.
Ich verstehe also nicht, was für einen Unterschied es macht (codetechnisch) ob man ein MsgBox drin hat oder nicht. Mit MsgBox funktioniert es zwar, aber man darf dann x-Male auf "OK" klicken, was auch nicht elegant ist.
Ausserdem verfälscht es die Ergebnisse, da die Threads nicht simultan sondern mehr oder minder in sequence gestartet werden.
Für jede Hilfe die zur Auflösung dieses Falles dienlich ist wäre ich sehr dankbar
Liebe Grüße
michi
Code:
If Me.chkStartInThreads.Checked Then Dim intMaxThreads As Integer = CInt(cboNumOfThreads.Items(cboNumOfThreads.SelectedIndex)) Dim trd(intMaxThreads) As Thread For iCnt As Integer = 1 To intMaxThreads ' MsgBox required because otherwise only one thread will be started instead of 1 To intMaxThreads threads :( MsgBox("Startup thread: " & iCnt.ToString) 'Number of threads starts with 1 - there is not 0 thread 'In vb the array starts with 0 that's the reason of the - 1 ( trd(0) means thread 1 ) intCurrentThread = iCnt Application.DoEvents() trd(iCnt - 1) = New Thread(AddressOf StartTestConversion) trd(iCnt - 1).Name = "StartTestConversion" & iCnt.ToString trd(iCnt - 1).IsBackground = True trd(iCnt - 1).Start() Next End If
Comment