我有一个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);