当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 后台工作

作者:精品下载站 日期:2024-12-14 02:51:18 浏览:13 分类:玩电脑

后台工作


Cmdlet 可以在内部执行操作或作为 Windows PowerShell后台作业。当 cmdlet 作为后台作业运行时,该工作是在其自己的线程中异步完成的,该线程与 cmdlet 正在使用的管道线程分开。从用户角度来看,当 cmdlet 作为后台作业运行时,即使作业需要很长时间才能完成,命令提示符也会立即返回,并且用户可以在作业运行时继续操作而不会中断。

后台作业、子作业和作业存储库

支持后台作业的 cmdlet 返回的作业对象定义了作业。 (Start-Job cmdlet 还返回一个作业对象。)作业的名称、用于指定作业的标识符、状态信息和子作业都包含在此定义中。该作业不执行任何工作。每个后台作业至少有一个子作业,因为子作业执行实际工作。当您运行 cmdlet 以便将工作作为后台作业执行时,cmdlet 必须将作业和子作业添加到公共存储库(称为作业存储库)。

有关如何在命令行处理后台作业的更多信息,请参阅以下内容:

  • 关于乔布斯

  • 关于职位详情

  • about_Remote_Jobs

编写作为后台作业运行的 Cmdlet

要编写可作为后台作业运行的 cmdlet,您必须完成以下任务:

  • 定义 asJob 开关参数,以便用户可以决定是否将 cmdlet 作为后台作业运行。

  • 创建一个派生自 System.Management.Automation.Job 类的对象。此对象可以是自定义作业对象或 Windows PowerShell 提供的作业对象,例如 System.Management.Automation.Pseventjob 对象。

  • 在记录处理方法中,添加一个 if 语句来检测 cmdlet 是否应作为后台作业运行。

  • 对于自定义作业对象,实现作业类。

  • 根据 cmdlet 是否作为后台作业运行,返回适当的对象。

有关代码示例,请参阅如何支持作业。

后台作业相关的 API

Windows PowerShell 提供以下 API 来管理后台作业。

System.Management.Automation.Job 派生自定义作业对象。这是一个抽象类。

System.Management.Automation.Jobrepository 管理并提供有关当前活动后台作业的信息。

System.Management.Automation.Jobstate 定义后台作业的状态。状态包括已启动、正在运行和已停止。

System.Management.Automation.Jobstateinfo 提供有关后台作业状态的信息,如果上次状态更改是由错误引起的,则提供作业进入当前状态的原因。

System.Management.Automation.Jobstateeventargs 提供后台作业更改状态时引发的事件的参数。

Windows PowerShell 作业 Cmdlet

Windows PowerShell 提供以下 cmdlet 来管理后台作业。

Get-Job

获取当前会话中运行的 Windows PowerShell 后台作业。

Receive-Job

获取当前会话中 Windows PowerShell 后台作业的结果。

Remove-Job

删除 Windows PowerShell 后台作业。

Start-Job

启动 Windows PowerShell 后台作业。

Stop-Job

停止 Windows PowerShell 后台作业。

Wait-Job

禁止显示命令提示符,直到会话中运行的一项或全部 Windows PowerShell 后台作业完成。

参见

编写 Windows PowerShell Cmdlet

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯