У меня есть PSCmdlet
, написанный на C# и .NET 3.5, который вызывает несколько других команд, которые определены в пределах того же Cmdlet
.PSCmdlet, вызывающий другую команду, зависает из-за длительного времени обработки?
Одна из этих команд запускает полный обход на моем сайте SharePoint и ждет его завершения. Оптимистично, они занимают 5-10 минут.
Поскольку эта команда занимает так много времени, и класс PowerShell
запускает их синхронно, консоль замерзает тем временем.
Это нормально, но через несколько минут Windows предположит, что он разбился и вытолкнул консоль PowerShell
. Как я могу избежать этого?
Вот как я бегу команду:
PowerShell ps = PowerShell.Create();
ps.Commands.AddCommand("Start-CrawlAndRunSearchCatalog").AddParameter("configFilePath", this.configFilePath);
foreach (string str in ps.AddCommand("Out-String").Invoke<string>())
this.WriteObject(str);