首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在c++/cli中使用Runspace.StateChanged事件?

如何在c++/cli中使用Runspace.StateChanged事件?
EN

Stack Overflow用户
提问于 2018-07-26 05:53:57
回答 2查看 215关注 0票数 1

我一直在用c++/cli开发一个应用程序,它可以使用powershell与exchange进行在线交互。我使用WSManConnectionInfo类创建连接和创建运行空间。

在Exchange中,运行空间的数量限制为3。

我已经开发了一个代码,它目前创建了一个运行空间。

如果创建的运行空间由于超时而过期,我必须通知我想在user.So类中使用Runspace.StateChanged事件的Runspace

我已经搜索过,但我找不到任何示例代码来实现它。

有人能帮我这个方法或任何其他的方法也可以提出。提前谢谢!!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-26 06:09:33

我不熟悉Runspace类中的事件。但是,您可以尝试存储创建运行空间的时间,并在超时发生时删除它。

票数 1
EN

Stack Overflow用户

发布于 2018-07-26 06:59:00

我使用了运行空间,并围绕它构建了应用程序,但我不相信我使用了这个特定的事件。但是,如果我要检查的只是运行空间对象的状态,这就是我通常所做的。

代码语言:javascript
复制
if ($myThread.Runspace.InvocationStateInfo.State -eq "Completed")
{
    #Code to process further here
    #Note that completed only means executed. Does not mean it did not raise errors.
    #For that you can use the Runspace.HadErrors property

    if ($myThread.Runspace.HadErrors -eq $true)
    {
        $ErrMsg = $myThread.Runspace.Streams.Error.Exception
    }
    else
    {
        #Success Code here
    }
}
else
{
    $FailureReason = $myThread.Runspace.InvocationStateInfo.Reason
}

$myThread是我的RunspaceObject。

然而,我很难相信这一事件将是最好的方式。一个runspace可以有多个状态。即使您设法获得了eventhandler for StateChanged,您仍然必须验证它是超时还是另一个超时。这将使您回到上面的代码,在那里您必须检查state

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51531866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档