PowerShell - Singleton - использование в пространстве выполнения - зависание пространства выполнения - PullRequest
0 голосов
/ 21 апреля 2020

Дано :

  • Использование PowerShell 5.1
  • Сценарий powershell, который успешно выполняется на консоли
  • с использованием нескольких включений / модулей и oop классов.
  • с использованием одноэлементных классов

Когда :

  • работает в пространстве выполнения.
          $rs = [runspacefactory]::CreateRunspace()
          $PowerShell = [powershell]::Create()
          $PowerShell.runspace = $rs
          $rs.Open()
          [void]$PowerShell.AddScript(<script ps1 file>)
          [void]$PowerShell.AddArgument(<param x>)
          $PowerShell.Invoke()
  • отладка пространства выполнения

Затем :

  1. пространство выполнения зависает в операторе кода, где
    • синглтон адресован
    • метод синглтона адресован для изменения одного из его свойств

Моя цель :

Для одновременного выполнения нескольких файлов сценариев

Мои вопросы :

  • Почему он может потерпеть неудачу на 1-м месте? Это как-то связано с безопасностью потоков? Если так; как я могу попытаться решить эту проблему ..
  • Существует ли наилучшая практика использования синглетонов (с возможностью изменения состояний свойств) во всех пространствах выполнения?
class Singleton {

    hidden static [Singleton] $_instance = [Singleton]::new()

    static [Singleton] $Instance = [Singleton]::GetInstance()

    [Guid] $SingletonTarget = [Guid]::NewGuid()

    hidden Singleton() {
    }

    hidden static [Singleton] GetInstance() {
        return [Singleton]::_instance
    }
}

Источник: https://gist.github.com/guitarrapc/2fde990d166286459c309b7cab03938b

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...