Cmdlet.EndProcessing和Cmdlet.StopProcessing之间的区别

Jus*_* R. 5 powershell cmdlets

编写Powershell cmdlet时,EndProcessingStopProcessing有什么区别?它们的声音相同,它们的描述大致相同,后者不会出现在cmdlet生命周期文档中.

Eri*_*ver 7

如果取消执行CmdLet,则调用StopProcessing(按CNTRL-C将导致执行StopProcessing).

如果CmdLet的执行正常结束,则调用EndProcessing.

我通常使用StopProcessing和EndProcessing来做同样的事情......那就是清理在BeginProcessing或ProcessRecord期间配置的资源,在某些情况下,尽管每个提供的操作之间存在一些差异.

它似乎是一个错误,它没有在生命周期文档中显示.

  • 是的,关键是:从EndProcessing输出东西基本上总是安全的,但不是从StopProcessing输出,因为当调用StopProcessing时,管道基本上已经死了:要么是因为用户按下了Ctrl + C(或者使用了其他一些特定于主机的东西)停止它的方式)或因为例外... (4认同)