Как создать C # асинхронный метод powershell?

Поэтому я хочу создать способ асинхронного запуска сценария powershell. Приведенный ниже код - это то, что у меня есть, но он не выглядит асинхронным, потому что он блокирует приложение и вывод неправильный.

    public static string RunScript(string scriptText)
    {
        PowerShell ps = PowerShell.Create().AddScript(scriptText);

        // Create an IAsyncResult object and call the
        // BeginInvoke method to start running the 
        // pipeline asynchronously.
        IAsyncResult async = ps.BeginInvoke();

        // Using the PowerShell.EndInvoke method, get the
        // results from the IAsyncResult object.
        StringBuilder stringBuilder = new StringBuilder();
        foreach (PSObject result in ps.EndInvoke(async))
        {
            stringBuilder.AppendLine(result.Methods.ToString());
        } // End foreach.

        return stringBuilder.ToString();
    }

Ответы на вопрос(1)

Ваш ответ на вопрос