线程阻塞的问题

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 又将如何处理?
...全文
148 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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#并发冲突与线程同步

111,098

社区成员

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

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

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