我有一个PSCmdlet
用 C# 和 .NET 3.5 编写的,它调用在同一 .NET 文件中定义的一些其他命令Cmdlet
。
其中一个命令会在我的 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);