11 月 9日,微软 Powershell 团队宣布:最新版本的 PowerShell Preview 扩展已在 Visual Studio Code 商店上发布,此次更新对 PowerShell 编辑器的核心: PowerShell 引擎进行彻底的改革,创造更可靠和稳定的用户体验。
以前,集成控制台(PowerShell 扩展提供的 shell)是通过在共享主运行空间上设置线程池任务来运行的,而 LSP、语言服务器协议(Language Server Protocol)和服务是通过 PowerShell 空闲事件来完成的,这导致了开销、线程问题和复杂的实现,这些实现旨在解决 PowerShell 作为同步单线程运行时,和语言服务器作为异步多线程服务之间的不对称问题。
现在,PowerShell Editor Services 维护了它自己的专用管道线程,它能够处理类似于 JavaScript 的事件循环的请求,这意味着开发者可以在正确的线程上同步运行所有内容,防止了整个类的竞争条件,可以产生更可靠、无 bug 的代码。除此之外,还获得了更高的效率,现在可以从这个线程直接调用 PowerShell api 和用 c# 编写的代码,而不需要PowerShell 管道的开销。
需要注意的是,PowerShell Preview 扩展属于 PowerShell 的预览版,可能会出现功能不稳定的情况。
据微软 Sydney Smith 透露,下一步的计划是继续专注于对 PowerShell 扩展的稳定性和可靠性的改进,特别关注于调试和启动方面的已知问题。