Нужна ли дополнительная очистка пространства выполнения после уничтожения родительского процесса? - PullRequest
3 голосов
/ 22 июня 2019

У меня очень ограниченное понимание того, как управление ресурсами / сборка мусора и подобные вещи работают в powershell.

Мой вопрос: Можно ли убить процесс с запущенным пространством выполнения?

start.ps1

$moduleOnePath = Join-Path $cwd "moduleOne.exe" -Resolve
$moduleTwoPath = Join-Path $cwd "moduleTwo.exe" -Resolve

$moduleOneProcess = Start-Process $moduleOnePath -PassThru
$moduleTwoProcess = Start-Process $moduleTwoPath -PassThru

$moduleOneProcess.WaitForExit()
$moduleTwoProcess.kill()

moduleTwo.exe (составлено из сценария ps с this ; показана только соответствующая часть)

  $runspace= [runspacefactory]::CreateRunspace()
  $runspace.Open()
  $powershell= [powershell]::Create()
  $powershell.Runspace = $runspace
  $powershell.AddScript({
     while($true) {
        sleep -s 1;
     }
  }) | Out-Null
...