【发布时间】:2022-03-30 20:17:59
【问题描述】:
我想在 powershell 中将一些文件解析操作与网络活动并行化。快速谷歌它, start-thread 看起来像是一个解决方案,但是:
“start-thread”一词未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,如果包含路径,请验证路径是否正确,然后重试。
当我尝试 start-job 时也发生了同样的事情。
我也试过摆弄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()
所以,我认为最好是在我使用 start-thread 时知道我做错了什么,因为它似乎对其他人有用。我用的是v2.0,不需要向下兼容。
【问题讨论】:
-
tl;dr:
receive-job (wait-job ($a = start-job { "heyo!" })); remove-job $a或$a = start-job { "heyo!" }; wait-job $a; receive-job $a; remove-job $a另请注意,如果您在作业完成之前致电receive-job,您可能一无所获。跨度> -
还有
(get-job $a).jobstateinfo.state;