Quiero paralelizar algunas acciones de análisis de archivos con actividad de red en powershell. Google rápida para ello, puesta en hilo parecía una solución, pero:¿Cómo funciona el enhebrado en Powershell?
El término 'puesta en hilo' no se reconoce como el nombre de un cmdlet, función, archivo de script o programa ejecutable. Verifique la ortografía del nombre, o si se incluyó una ruta, verifique que la ruta sea correcta y vuelva a intentarlo.
Lo mismo sucedió cuando probé el trabajo inicial.
También probé perder el tiempo 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()
Por lo tanto, creo que lo mejor sería saber lo que hago mal cuando utilizo la puesta en hilo, ya que parece que funciona para otras personas. Yo uso v2.0 y no necesito compatibilidad hacia abajo.
** tl; dr: ** 'receive-job (wait-job ($ a = start-job {" heyo! "})); remove-job $ a' o '$ a = start-job {" heyo! " }; wait-job $ a; recibir-trabajo $ a; remove-job $ a' También tenga en cuenta que si llama a 'receive-job' antes de que el trabajo finalice, es posible que no obtenga nada en absoluto. – Andrew
También '(get-job $ a) .jobstateinfo.state;' – Andrew