繁体   English   中英

如何在C#中获取Powershell运行空间状态

[英]How to get powershell runspace status in c#

我正在使用ASP.Net MVC中的Powershell运行空间,发现很难获得有关如何检查现有Powershell运行空间状态的文档。 真的很感谢任何见识!

控制者

public class DemoController : ApiController
{
    PowerShell psInstance = PowerShell.Create();
    static Runspace rSpace = RunspaceFactory.CreateRunspace();

...

private void Initialise()
    {
        try
        {
            psInstance.Runspace = rSpace;
            if (HOW TO CHECK IF RUNSPACE IS ALREADY OPEN?) <<-- 
            {
                DO NOTHING
            }
                else 
            {
                rSpace.Open();
                LoadModules();
            }
        }
        catch (CmdletInvocationException e)
        {
            rSpace.Close();
            rSpace.Dispose();
            psInstance.Dispose();
            throw e;
        }
    }

检查RunspaceStateInfo属性

if(rSpace.RunspaceStateInfo.State == RunspaceState.Opened)
{
    // runspace is open, do stuff
}
else if(rSpace.RunspaceStateInfo.State == RunspaceState.BeforeOpen)
{
    // call rSpace.Open() before invocation
}
else 
{
    // runspace state is either broken, already in use or closed
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM