【发布时间】:2015-08-25 19:31:39
【问题描述】:
在过去的一年中,我承担了构建 PowerShell 应用程序的任务。
发布时的预期目的仅用于收集数据。
主要灵感来源于 Francois-Xavier Cat 的“◦LazyWinAdmin Tool (WinForm)”。
我使用 Sapiens PrimalForm 生成界面,然后构建所需的脚本。
界面正常,脚本正常。
在我工作的地方,唯一可用的 PowerShell 版本是 V2、PS 远程处理和任何 Invoke-* 都受到限制。
主要操作系统为Windows 7,少数为Win 8/8.1。
因此,您会看到我的所有脚本都使用 WMI 对象。
我的一些同事仍然使用 Net Framework 3.5,必须考虑到这一点,因为某些界面元素可能会干扰。
过去几个月耗费大量时间的主要问题是冻结的 GUI 问题。
任何尝试使用 PowerShell 制作任何类型 GUI 的人都遇到过这个问题。
目前,我已经阅读/收藏了 100 多个有关 PowerShell 多线程的论坛/网页/线程。
我已经测试过 RunSpace Pool 方法,它似乎是我需要的最快的方法。
鉴于在大多数论坛上,这种方法被认为是 .NET 开发的边缘,我已经碰壁了。
我一辈子都无法让界面、线程函数和脚本一起工作;使界面在线程上运行,脚本在单独的线程上运行。
我在下面发布了我的应用程序的完整代码。 请告知是否有办法克服脚本在单独的线程上运行。
由于整个代码超过了最大正文,我必须从我的 Git 页面添加应用程序:
https://github.com/GeorgeChe/PowershellApp.git
我曾想过对单独的脚本进行点源化并创建一种模块化应用程序,产生的错误多于修复的错误。 我还在 Git 页面上包含了线程功能。
【问题讨论】:
标签: multithreading winforms git powershell