首页 > 解决方案 > PowerShell 中的进程、实例和运行空间

问题描述

- 方法在“当前或新的运行空间”中创建[Powershell]::create()一个新的 PowerShell-“实例”。

有人可以解释术语processinstancerunspace和(也许是thread)在这方面是如何相互关联的。如果可能的话,用外行的话?

标签: .netpowershellprocessinstancerunspace

解决方案


您拥有的术语不可互换,也不做同样的事情。

进程是运行指令集的程序。

线程是程序中单次运行的指令。

多线程是指同时运行多条指令。每个都需要一个单独的线程。

Runspace 在同一个 powershell 进程中,但调用了一个新的 powershell 引擎,以便在不干扰当前 powershell 脚本线程的情况下运行其代码。

实例是包含的代码运行。它是一个描述符。

所以这里有一些例子

我可以有一个进程的实例。我可以有一个线程的实例。我可以有一个 Runspance 的实例。

编辑以根据评论扩展答案

“所以在上面发布的示例中([Powershell]::create()),这是线程、进程还是运行空间的实例?”

所以我们有一个 Powershell 应用程序。正在发生的事情是这个应用程序启动了一个运行空间,您的命令将在其中执行并设置一个位置来创建 Powershell 对象。每次打开 powershell 控制台时,您都在启动另一个运行空间。

它创建一个对象,您可以在[Powershell]::create()其中确定将运行什么以及将在哪个运行空间上运行。如果您不选择运行空间,那么它将为您创建一个。

那么[Powershell] 是什么将运行?(脚本)及其运行位置(运行空间)

Runspace 是如何运行的?(在 powershell 引擎上)


推荐阅读