线程阻塞的问题

milo4210 2008-10-14 11:12:44
案例是这样的,有一个数组,存储着一系列文件名,如
string[] list = new string[]{"a.txt","b.txt","c.txt"}

然后使用 System.Diagnostics.Process.Start 来启动一外部应用程序,将数组的每项作为参数传递给外部程序(已经实现)

问题是当遍历这个数组的时候,Process 会启动很多子线程,我要的效果是 必须等待第一个参数执行完毕,也就是说 a.txt 被外部程序处理完之后,再执行 b.txt, 这就要第一个子线程(a.txt) 进行阻塞,等待它执行完毕,请教该如何处理?

如果使用多线程来处理,将数组放在队列里,使用 thread 又将如何处理?
...全文
134 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
abcyzq 2008-10-14
  • 打赏
  • 举报
回复
顶,加学习
JeffChung 2008-10-14
  • 打赏
  • 举报
回复
没看明白.随便问一下:"a.txt 被外部程序处理完之后,再执行 b.txt,",
这还需要多线程吗?
wjq 2008-10-14
  • 打赏
  • 举报
回复
有一个System.Diagnostics.Process.WaitForExit()方法你应该用的上吧?
gogogo 2008-10-14
  • 打赏
  • 举报
回复
你的第一个问题,可以避免使用多线程处理问题,刚刚看到一个帖子
http://topic.csdn.net/u/20081014/09/f0e443dd-00d2-46ae-bd11-76f39382aa5a.html
其中的8楼的解释代码就是一个进程,顺序执行,并且命令代码可以变成你的外部程序的命令就应该可以了。
你可以参考。
milo4210 2008-10-14
  • 打赏
  • 举报
回复
UP
卧_槽 2008-10-14
  • 打赏
  • 举报
回复
lock
shuailizhi 2008-10-14
  • 打赏
  • 举报
回复
也许你没表述清楚,按你说的怎么感觉顺序执行就可以
zbking 2008-10-14
  • 打赏
  • 举报
回复
System.Diagnostics.Process是进程,不是线程。
unknow_123 2008-10-14
  • 打赏
  • 举报
回复
放个阻塞的标志和委托事件,一个线程负责删除,删除成功之后,委托响应,打开阻塞,继续下一个文件的操作
superxiaomm 2008-10-14
  • 打赏
  • 举报
回复
概念问题System.Diagnostics.Process.Start 是启动外部进程,不是thread.
进程间的控制用lock显然不行,要用mutex,shephomore这种来做了
NeptuneGrass 2008-10-14
  • 打赏
  • 举报
回复
看这个系列的文章:
C#并发冲突与线程同步

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧