faust8883 2016-10-23 03:12 采纳率: 0%
浏览 1059

关于C#调用PowerShell时SnapIn的问题

最近的一个项目会用到C#执行PowerShell脚本。
执行PowerShell脚本前需要先SnapIn一些SDK的dll,此过程每次都会占用5秒左右的时间。
目前我有两个方法:
1.声明一个单例的Runspace对象,这样的话只需要SnapIn一次就可以了。但是执行PowerShell命令是需要做队列,无疑降低了执行效率。
2.每次执行PowerShell命令时都使用新的Runspace对象,这样一来可以并行执行PowerShell命令,但每次执行前都需要花时间SnapIn。
各位是否有更好的解决办法?

  • 写回答

1条回答 默认 最新

  • threenewbee 2016-10-23 03:46
    关注

    可以多线程并且维护一个SnapIn的池,后台线程初始化一些SnapIn,你的ps执行从池里面取。

    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?