我需要爲指定目錄中的每個PDF文件運行一個外部程序。如何設置程序可以同時啓動的最大外部進程數?
問題是 - 如何限制外部程序進程數爲用戶指定的值?我在循環中運行它,就像這樣:
foreach(string file in Directory.GetFiles(sourcePath))
{
Process p = new Process();
p.StartInfo.FileName = @"path\program.exe";
p.StartInfo.Arguments = previouslySetArguments;
p.Start();
}
現在的問題是,有時是一個非常龐大的文件量和代碼,所有的進程將在同一時間跑了。它確實減慢了機器的速度。
其他想法是把p.WaitForExit();
的p.Start();
後,但隨後會在時間,這在另一方面只運行一個進程 - 減慢整個工作:)
什麼是限制的過程最簡單的方法號碼在同一時間運行它們的確切數量?我想讓用戶決定。
假設我想一次運行最多5個進程。因此:
- 前5個進程或多或少地同時啓動目錄中的前5個文件
- 當其中一個(無所謂,哪個)結束工作時,下一個開始 - 爲下一個文件
可能重複的[菌種過程,但只有5在時刻](http://stackoverflow.com/questions/4360720/spawn-processes-but-only-5-at-a-time) –
什麼版本的.Net? –
@AustinSalonen - 爲什麼.NET的版本很重要? –