2

これに近い質問があるようですが、実際の .Net Process オブジェクトに関連するものは見たことがありません。現在、Process オブジェクトを使用して外部実行可能ファイルを開始し、C# でデータを読み取ります。これは、データを監視する必要がある収集ポイントごとに 1 回発生します。ただし、5 つ以上の収集ポイントを監視する必要がある場合、5 番目の収集ポイントのプロセスは、そこからデータを収集する前に強制終了されます。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 つ以下が必要な場合は問題ありません。

4

2 に答える 2

1

開始できるプロセスの数に実質的な制限はありません。5つから始めることは確かに問題ではありません。C# と .NET を使用しても影響はありません。.NET の Process クラスは、Win32 の CreateProcess および ShellExecuteEx API のマネージ ラッパーにすぎません。問題は、起動しているプログラムにあるはずです。何が起こっているのかを理解するには、それを分析する必要があります。

于 2012-10-02T13:39:11.720 に答える