Powershell多线程调用自定义函数,无法执行
关于powershell多线程并行处理的问题,废话不多说,直接上代码
function printSomething()
{
$binaryExitCode = 100
Start-Sleep -Seconds 2
return $binaryExitCode
}
$task1 =
{
Start-Sleep -Seconds 2
$binaryExitCode = 10
#坑爹的地方就在下面这句函数调用,为啥调用无法成功?
#printSomething
return $binaryExitCode
}
$thread1 = [PowerShell]::Create()
$job1 = $thread1.AddScript($task1).BeginInvoke()
do { Start-Sleep -Milliseconds 100 } until ($job1.IsCompleted)
$result1 = $thread1.EndInvoke($job1)
$thread1.Runspace.Close()
$thread1.Dispose()
echo "Binary execute result is $result1"
[size=14px][size=16px]最终输出为10, 这是理所当然的,但是我把$task1打括号里的#printSomething注释给去掉,结果不能输出$result1[/size][/size]
请大神献身。