首页 > 解决方案 > runspacepool 中的共享自定义对象

问题描述

我有一个日志模块,它可以将一个对象 $log 我想在我的运行空间池中共享日志对象。目的是在每个运行空间中使用相同的日志方法。

This Object 中的数组和哈希表是同步对象,我使用互斥锁来编写文件和控制台。我和我共享变量

$sessionstate.Variables.Add((New-Object -TypeName System.Management.Automation.Runspaces.SessionStateVariableEntry -ArgumentList "log" ,$log, "log"))

当我启动我的脚本时,当我在我的对象方法中调用私有方法时,运行空间不会随机回答(我无法使用调试运行空间)似乎卡住但并不总是相同

    $log|add-member -type ScriptMethod -name Warning -value {
    param( 
        [object]$obj
    )

    if($this._EnableLevel("Warning")){
        $this._log("Warning",$obj)
    }

有人确实已经遇到过运行空间的此类问题吗?

标签: powershellrunspace

解决方案


推荐阅读