社区
C#
帖子详情
兄弟们,有没有更好的方法来解决这个进程等待的问题
linuxyf
2005-07-18 09:10:59
我在一个程序(A)里启动另外一个程序(B),启动后则等待启动程序(B)的结束,如果B结束了,A才继续往下执行.
这是我的一个实现方案,看看大家没有有更好的解决方案,谢谢!
...全文
221
15
打赏
收藏
兄弟们,有没有更好的方法来解决这个进程等待的问题
我在一个程序(A)里启动另外一个程序(B),启动后则等待启动程序(B)的结束,如果B结束了,A才继续往下执行. 这是我的一个实现方案,看看大家没有有更好的解决方案,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
linuxyf
2005-07-21
打赏
举报
回复
wangsaokui(无间道III(MSMVP)),你说我开头的方案是否在实际中是可行的,
因为我要等到那个进程结束才开始继续后面的操作。
我想问一下,如果采用remoting方式,启动另一个程序以后,如何等待判断其结束呢?
wangsaokui
2005-07-21
打赏
举报
回复
你可以在B程序中返回一个值,返回的方式可以是remoting,MSMQ,或者socket,总之是A和B都能接收和访问的一个中间介质,A接收到后继续执行
linuxyf
2005-07-20
打赏
举报
回复
wangsaokui(无间道III(MSMVP)) ,你给出的解答感觉像是线程间的调用,
而我是启动了一个进程,也可以一步调用吗? 对异步委托不熟,所以有此一问.
linuxyf
2005-07-20
打赏
举报
回复
不知 孟子E章和思归兄有没有高见啊?
linuxyf
2005-07-19
打赏
举报
回复
还有没有不同的解决方案
woyaomoney
2005-07-19
打赏
举报
回复
同意楼上
lw8122
2005-07-19
打赏
举报
回复
根据你的需求,没必要再启用一个线程,在主线程做就可以了。
lovelxj
2005-07-19
打赏
举报
回复
这样最好重新启动一个线程
因为在等待外部进程的过程需要等待好久直到外部进程关闭
在等待过程中程序界面都无法正常显示
所以建议另开一个线程,在这个线程中等待外部进程完成时触发一个委托
koenemy
2005-07-19
打赏
举报
回复
可行的。
最好别改,改以后占用内存太多了去干活,还是间隔一段时间比较好。
linuxyf
2005-07-19
打赏
举报
回复
怎么没人发表意见啊
wangsaokui
2005-07-19
打赏
举报
回复
异步委托
比方说
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconasynchronousdelegatesprogrammingsample.htm
AsyncCallback 委托用于指定在开始操作完成后应被调用的方法。AsyncCallback 委托被作为开始操作上的第二个到最后一个参数传递:
public delegate void AsyncCallback(IAsyncResult ar);
声明
public static ManualResetEvent allDone = new ManualResetEvent(false);
B启动后先allDone.waitOne阻塞线程;B执行完后把allDone.Set(),让线程继续执行
linuxyf
2005-07-18
打赏
举报
回复
senkiner(金龍) ,可以改,但改后为什么可以,我也不是很清楚,还有没有其它的解决方案?
cdo
2005-07-18
打赏
举报
回复
up
senkiner
2005-07-18
打赏
举报
回复
可以把
while(Proc.HasExited == false)
{
Proc.WaitForExit(1000);
}
改为
Proc.WaitForExit()
吗?
linuxyf
2005-07-18
打赏
举报
回复
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();
Info.FileName = "notepad.exe";
Info.Arguments = "test.txt";
Info.WorkingDirectory = "C:\\";
System.Diagnostics.Process Proc ;
try
{
Proc = System.Diagnostics.Process.Start(Info);
}
catch(System.ComponentModel.Win32Exception e)
{
Console.WriteLine("系统找不到指定的程序文件。\r{0}", e);
return;
}
while(Proc.HasExited == false)
{
Proc.WaitForExit(1000);
}
Console.WriteLine("String is ok");
}
RK3399 Android系统10.0 init
进程
启动
让学员深入理解这些技术在实际产品开发中的应用场景和实现
方法
,提高学员的实际开发能力和经验,从而
更好
地应对实际产品开发中遇到的
问题
和挑战。 知识运用方向 学习Android启动方面的知识,可以参与如下实际开发工作...
进程
控制-创建、退出、
等待
、替换
这个语句是在
进程
里面进行
进程
替换的,那么回顾之前的
进程
替换原理,此刻进行了替换之后,执行的还会是之前的父
进程
吗?答案显而易见,父
进程
还是之前的父
进程
,父
进程
还存在着并没有因为
进程
替换而创建了新的
进程
,...
Linux系统编程第五节——
进程
创建、终止、
等待
(通俗易懂快速上手版本)
我们本节内容,主要来讲述
进程
控制有关的内容。 同样,我们会用通俗易懂、不同于教科书的讲授思路,来为大家讲解。 同时,本节内容板块清晰简明,在最终同学们的思维导图可以做起来呦~~~ (同时需要说明一下,...
Linux多
进程
开发
进程
状态反映
进程
执行过程的变化,其随着
进程
的执行和外界条件的变化而转换。在三态模型中为:就绪态、运行态、阻塞态,在五态模型中:新建态、就绪态、运行态、阻塞...每个
进程
都由
进程
号来表示,其类型为pid_t整型。
Linux
进程
通信
今天主要的任务就是知道什么是
进程
通信?
进程
通信是如何实现的?前面我们学习了基础IO,再往前看又学习
进程
的相关的概念,那么今天我们通过
进程
的通信来把他们用起来.这个话题挺重要的,但是没有前面的大.
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章