案例是这样的,有一个数组,存储着一系列文件名,如
string[] list = new string[]{"a.txt","b.txt","c.txt"}然后使用 System.Diagnostics.Process.Start 来启动一外部应用程序,将数组的每项作为参数传递给外部程序(已经实现)问题是当遍历这个数组的时候,Process 会启动很多子线程,我要的效果是 必须等待第一个参数执行完毕,也就是说 a.txt 被外部程序处理完之后,再执行 b.txt, 这就要第一个子线程(a.txt) 进行阻塞,等待它执行完毕,请教该如何处理?如果使用多线程来处理,将数组放在队列里,使用 thread 又将如何处理?
string[] list = new string[]{"a.txt","b.txt","c.txt"}然后使用 System.Diagnostics.Process.Start 来启动一外部应用程序,将数组的每项作为参数传递给外部程序(已经实现)问题是当遍历这个数组的时候,Process 会启动很多子线程,我要的效果是 必须等待第一个参数执行完毕,也就是说 a.txt 被外部程序处理完之后,再执行 b.txt, 这就要第一个子线程(a.txt) 进行阻塞,等待它执行完毕,请教该如何处理?如果使用多线程来处理,将数组放在队列里,使用 thread 又将如何处理?
http://topic.csdn.net/u/20081014/09/f0e443dd-00d2-46ae-bd11-76f39382aa5a.html
其中的8楼的解释代码就是一个进程,顺序执行,并且命令代码可以变成你的外部程序的命令就应该可以了。
你可以参考。
这还需要多线程吗?
进程间的控制用lock显然不行,要用mutex,shephomore这种来做了