powershell - PowerShell - 单例 - 在运行空间中的使用 - 运行空间挂起
问题描述
给定:
- 使用 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()
- 调试运行空间
然后:
- 运行空间挂在代码语句处
- 单身人士被解决
- 单例的一个方法被用来改变它的一个属性
我的目标:
并行执行多个脚本文件
我的问题:
- 为什么它可能首先失败?它与线程安全有关吗?如果是这样; 我该如何尝试解决它..
- 是否有在整个运行空间中使用单例(具有更改属性状态的能力)的最佳实践?
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
解决方案
推荐阅读
- javascript - 隐藏论坛中的链接,直到用户发表评论
- python - 单击 html 按钮时调用 Django 函数
- django - Solr 返回更多值
- angular - 如何在不从我的服务传递属性“类型”的情况下使用带有元数据的效果?
- docker - 通过 ssh 运行 Ubuntu 容器时如何在 Windows 10 上打开 GUI
- node.js - 在 AWS 中使用 Node js 做出反应。React 和 Node 问题之间的连接
- c# - 创建 ef6 dbcontext 构造函数类
- node.js - VS 代码没有给出 npm 包方法推荐
- c - 哪些 C 版本允许您在 for 循环中声明变量?
- angular - Angular Firestore - 异步管道返回空数据