.net 为什么PowerShell中的ScriptBlock会延迟输出,直到ScriptBlock完成?

.net 为什么PowerShell中的ScriptBlock会延迟输出,直到ScriptBlock完成?,.net,powershell,.net,Powershell,我有以下代码: Function-Step "Long operation" { MyLongRunningFunction } function Function-Step { param([string]$message,[ScriptBlock]$block) Write-Host $message Read-Host $block.Invoke() } MyLongRunningFunction在运行时将信息写入标准输出,但直到函数突然完成,

我有以下代码:

Function-Step "Long operation" { MyLongRunningFunction }

function Function-Step
{
    param([string]$message,[ScriptBlock]$block)     
    Write-Host $message
    Read-Host
    $block.Invoke()
}
MyLongRunningFunction
在运行时将信息写入标准输出,但直到函数突然完成,它才会显示在控制台中

它似乎正在吞噬
MyLongRunningFunction
的所有输出,然后,它同时抛出所有输出


如何避免这种行为?

使用作业?这是最简单的方法。使用@PetSerAl-Answer。这将保留函数本身的句柄。