Powershell多线程调用自定义函数,无法执行

lzhongs 2016-02-25 11:10:43
关于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]

请大神献身。


...全文
276 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
Hello,老铁,你后来解决问题了吗?我也遇到这种情况,

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧