C# 如何在c++/cli?
我一直在使用C# 如何在c++/cli?,c#,powershell,c++-cli,runspace,C#,Powershell,C++ Cli,Runspace,我一直在使用c++/cli开发一个应用程序,该应用程序使用powershell与exchange online进行交互。我使用了WSManConnectionInfo类来创建连接和运行空间 在Exchange online中,运行空间的数量限制为3 我已经开发了一个代码,目前正在创建一个运行空间 如果创建的运行空间由于超时而过期,我必须通知用户。因此我考虑在runspace类中使用runspace.StateChanged事件 我在谷歌上搜索过,但找不到任何实现它的示例代码 有人能帮我用这个方法
c++/cli
开发一个应用程序,该应用程序使用powershell与exchange online进行交互。我使用了WSManConnectionInfo
类来创建连接和运行空间
在Exchange online中,运行空间的数量限制为3
我已经开发了一个代码,目前正在创建一个运行空间
如果创建的运行空间由于超时而过期,我必须通知用户。因此我考虑在runspace
类中使用runspace.StateChanged
事件
我在谷歌上搜索过,但找不到任何实现它的示例代码
有人能帮我用这个方法吗?也可以提出任何其他方法。提前谢谢 我不熟悉运行空间类中的事件。但是您可以尝试存储创建运行空间的时间,如果超时,则删除它我使用过运行空间并围绕它构建了应用程序,但我不相信我使用过这个特定事件。但如果我只想检查我的运行空间对象的状态,这就是我通常做的
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
然而,我发现很难相信这个活动会是最好的方式。
运行空间可以有多个状态。即使您成功地获得了状态更改的事件处理程序
,您仍然需要验证它是超时还是其他超时。这将使您回到上面的代码,您必须检查状态
。我尝试过,但与存储时间相比,事件似乎是一种更好的方法。您是对的,但事件会自动触发,而您的代码不必在事件处理程序中使用您的代码。因为我是在事件处理程序中编写的一个事件,我不需要显式地调用它