powershell создает исключение PipelineStoppedException для асинхронного вызова - PullRequest
2 голосов
/ 22 декабря 2010

Ниже кода выдает исключение PipelineStoppedException при попытке завершить вызов. Кто-нибудь может увидеть что-то не так? Спасибо.

        using (PowerShell powershell = PowerShell.Create())
        {                
                powershell.AddScript(script);
                powershell.Runspace = CreateRunspace();
                lock (powershell.Runspace)
                {
                    powershell.BeginInvoke(
                                input,
                                setting,
                                delegate(IAsyncResult result)
                                {                                       
                                  powershell.EndInvoke(result); // throw pipeline stopped exception.                                         
                                },
                               null);
                }
        }

1 Ответ

3 голосов
/ 22 декабря 2010

BeginInvoke возвращается немедленно - по замыслу - поэтому предложение using закрывается, удаляя экземпляр powershell до вызова EndInvoke.Используйте регулярный синхронный Invoke.Вы смешиваете шаблоны синхронизации и асинхронности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...