Multithreading

  • Ich gewinne während des Programmablaufs Parameter, die stehen in einem Array

    Nun möchte ich eine bestimmte Anzahl von Prozessen starten um die Liste abzuarbeiten und dabei gerne z.B. 10 gleichzeitig laufen lassen und sobald einer davon fertig ist den nächsten starten bis alle (200-300) durch sind.

    Run ö.ä. brauche ich um ein externes Hilfproggie aufzurufen. Hier mal ein Beispiel mit "copy"

    Code
    $ergebnis = Run (@ComSpec & " /c copy " & $array[$i] & @TempDir & "\NewFiles\")

    Ideen?

  • Das ist mein Ansatz:

    [autoit]

    Local $i = 1, $a[10]

    [/autoit][autoit][/autoit][autoit]

    Do
    For $j = 0 To 9 Step 1
    If Not ProcessExists($a[$j]) Then
    $a[$j] = Run(Whatever)
    $i += 1
    EndIf
    Next
    Until $i > 1000

    [/autoit]


    Etwas umändern und schon müsste es für deine Zwecke funktionieren.
    Alles was du brauchst ist eine Array - mit in diesem Fall 1000 Elementen - und dann kannst du "Whatever" durch "$Commands[$i]" ersetzen.

    MfG, James C.