everybody,通过[PowerShell]::Create()创建的线程执行cmdlet没问题。但是当改为调用函数就不成功,为什么?有什么解决方法吗?
当然,我的函数本身是没问题的。
我的目的是创建一个线程去执行任务,超过一定时间未完成的话,就关闭该任务。
如下代码,把$code换成$task1,是没问题的。
脚本代码如下:
Start your code here $code = { $cb.Scan($PrepareFileName, $NailDirName, $HtmlFileName) } $task1 = { Start-Sleep -Seconds 9; Get-Service } $newThread = [PowerShell]::Create().AddScript($code) $handleTh = $newThread.BeginInvoke() $nTimes = 0; do { $nTimes++; if($handleTh.IsCompleted -or $nTimes -gt 2) { break; } Start-Sleep -Milliseconds 500
} while($true)
$newThread.EndInvoke($handleTh)
$newThread.Runspace.Close()
$newThread.Dispose()