Ich möchte einige Datei-Parsing-Aktionen mit Netzwerkaktivität in Powershell parallelisieren. Schneller Google für sie, Start-Faden wie eine Lösung gesucht, aber:Wie funktioniert das Threading in der Powershell?
Der Begriff ‚Start-Thread‘ nicht als Name eines Cmdlets, Funktion, Skriptdatei oder ein geschriebenes Programm erkannt. Überprüfen Sie die Schreibweise des Namens, oder überprüfen Sie, ob der Pfad korrekt ist, und versuchen Sie es erneut.
Das gleiche passierte, als ich Start-Job versuchte.
Ich habe auch versucht also mit System.Threading.Thread
[System.Reflection.Assembly]::LoadWithPartialName("System.Threading")
#This next errors, something about the arguments I can't figure out from the documentation of .NET
$tstart = new-object System.Threading.ThreadStart({DoSomething})
$thread = new-object System.Threading.Thread($tstart)
$thread.Start()
Hantieren, ich denke, das Beste wäre zu wissen, was ich falsch gemacht, wenn ich Start-Thread verwenden, da es auch für andere Menschen zu arbeiten scheint. Ich benutze v2.0 und brauche keine Abwärtskompatibilität.
** tl; dr: ** 'empfange-job (wait-job ($ a = start-job {" heyo! "})); remove-job $ a' oder '$ a = start-job {" heyo! " }; Warte-Job $ a; Empfangsarbeit $ a; remove-job $ a' Beachten Sie auch, dass Sie, wenn Sie vor dem Job "receive-job" aufrufen, gar nichts erhalten. – Andrew
Auch '(get-job $ a) .jobstatinfo.state;' – Andrew