似乎有问题接近这一点,但没有看到涉及实际的.Net过程对象。 目前,我正在使用一个Process对象来启动外部可执行文件,并在C#中从它读取数据。 对于每个我必须监控数据的收集点,都会发生一次。 但是,当我必须监视5个或更多的收集点时,我才能从第五个收集点收集任何数据,否则我的stream程将被终止。 用于启动Process对象的代码如下所示。 任何帮助表示赞赏。
procCollectionMonitor = new Process(); procCollectionMonitor.StartInfo.FileName = options.CollectionMonitorProcessPath; procCollectionMonitor.StartInfo.WorkingDirectory = System.IO.Path.GetDirectoryName(options.CollectionMonitorProcessPath); procCollectionMonitor.StartInfo.ErrorDialog = false; procCollectionMonitor.StartInfo.UseShellExecute = false; procCollectionMonitor.EnableRaisingEvents = true; procCollectionMonitor.Exited += spawn_Exited; procCollectionMonitor.Start();
此应用程序是Windows Server 2008 R2上运行的Windows服务。 正如我之前所说,这个问题只发生在5个或更多的收集点开始。 需要4个或更less的实例没有问题。
您可以启动的进程数量没有实际的限制。 开始五,肯定不会是一个问题。 你使用C#和.NET不会有影响。 .NET中的Process类只是Win32 CreateProcess和ShellExecuteEx API的托管包装。 问题必须在于您启动的程序。 你需要分析它来弄清楚发生了什么事情。