192.168.1.1-路由器设置 | 192.168.0.1-无线路由器设置

在应用程序中使用RunSpace 2

发布时间:2015-10-18 09:09

 上一次的博客中我们介绍了最为基本的方法在应用程序中使用PowerShell引擎,当然这是最为简单的使用方式虽然简单当然也很有效,只不过不要忘记当不想再使用 RunspaceInvoke 实例的时候调用

实例的Dispose() 方法对其资源进行释放,也许你也已经尝试在你的应用程序中使用了这种方法
或许你也已经发现这中方法有一个巨大的问题 那就是通过简单的代码创建RunspaceInvoke 但是只能同步执行并且获取结果,也许这种方式在一般情况下并不是什么大问题,在需要长时间的执行的脚本或者命令时候 Invoke()方法将会阻塞当前线程,使得你不得不进行长时间的等待,不得不说这点的确有点让人不爽,我们之前说过选择的简单的办法就要丧失其灵活性。
聪明的你似乎觉得我们今天的主题应该是异步运行了? 我不得不Say No 因为在讨论异步运行之前还有很多事情要做。
So 你就应该知道我们今天讨论的主题是如何开始初步的使用Runspace 和PipeLine
一般来说 如果想在应用程序中使用PowerShell 引擎 我们只要创建Pipeline 就可以完成。
但是现在我们还不能创建因为这是依靠Runspace 实例的CreatePipeline() 方法创建。
而现在我们都没有创建Runspace 对象实例,Runspace 实例都要通过 RunspaceFactory 的静态方法来创建并且在PowerShellV1 版本时候创的Runspace 实例都是Local Runspace 意味这你讲不能创建基于远程计算机会话的 Runspace 当然 V1版本已经太过久远 我们已经无需思考这个问题。 http://www.luyouqiwang.com/
好了说了这么多 下面我们应该看实际代码。
 
事实上代码简单到可以非常容易的理解。
我们使用了无配置的静态方法创建了新的Runspace 对象 当然这是使用默认配置。
紧接着 我们创建了管道,并且是一个完整的管道 因为我们给管道中放置了新的命令,
最后就像之前一样我们使用Invoke执行了管道中的命令,请注意创建管道前 Runspace 状态要处于Opened 状态 虽然此时依然可以创建管道但是系统会引发异常。
 
同样CreatePipeline 方法还有另外一个重载接受两个参数。
 
意思是当true 时候 命令将会记录在命令历史记录中以方便使用Get-history 进行查找调用。
关于我们 - RSS地图 - 最近更新 - 友情链接 - 网站地图 - 版权声明