Desidero parallelizzare alcune azioni di analisi dei file con l'attività di rete in PowerShell. Google Quick per esso, start-filo sembrava una soluzione, ma:Come funziona il threading in PowerShell?
Il termine 'start-thread' non è riconosciuto come il nome di un cmdlet, una funzione, file di script o un programma eseguibile. Controlla l'ortografia del nome o se è stato incluso un percorso, verifica che il percorso sia corretto e riprova.
La stessa cosa è accaduta quando ho provato a iniziare il lavoro.
Ho provato anche trafficando con 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()
Quindi, penso che la cosa migliore sarebbe di sapere che cosa ho fatto di sbagliato quando uso start-filo, perché sembra di lavorare per gli altri. Io uso v2.0 e non ho bisogno di compatibilità verso il basso.
** tl; dr: ** 'receive-job (wait-job ($ a = inizio-lavoro {" heyo! "})); remove-job $ a' o '$ a = start-job {" heyo! " }; wait-job $ a; ricevere-lavoro $ a; remove-job $ a' Nota anche che se chiami 'receive-job' prima che il lavoro sia finito, potresti non ottenere nulla. – Andrew
Anche '(get-job $ a) .jobstateinfo.state;' – Andrew