读书人

循环调用外部命令的有关问题

发布时间: 2013-02-15 15:46:56 作者: rapoo

循环调用外部命令的问题
测试时文件数量少没发现问题,用的时候由于处理上百万的文件,进程后来非常多,而且到最后提示无法调用的exe,请问有什么好的解决办法

 
foreach (FileInfo NextFile in fileInfo)
{
runOne();
}

private void runOne()
{
string binStr = "a.exe";

string argu = " -0"
Process exep = new Process();
exep.StartInfo.FileName = binStr;
exep.StartInfo.Arguments = argu;


exep.StartInfo.CreateNoWindow = true;
exep.StartInfo.UseShellExecute = false;
exep.Start();

}
C# Process
[解决办法]
进程开启太多,无法继续开启新的进程,在foreach中thread.sleep一下,sleep的时间根据进程执行时间决定
[解决办法]
做个线程池,预先生成20个线程,这样同时可进行20个命令,多了让他等待别人释放,比1个进程好点。
[解决办法]
调用前判断进程列表中a.exe是否超过20个,如果是,就sleep 100ms再判断,否则再启动新程序。

读书人网 >C#

热点推荐