我有两个复选框和一个按钮。在按钮单击处理程序下,
private void button1_Click(..)
{
if(checkbox1.true) { //start a process }
if(checkbox2.true) { //start process 2 once process 1 is done}
}
进程1和2都是异步启动的。如何设置进程2和进程1之间的依赖关系?如果在启动进程2之前完成进程1,我不想轮询。这会阻止UI。还有其他解决方案吗?
感谢
答案 0 :(得分:1)
您可以查看Process
课程的Exited
事件。
有些事情:
Process p = ...
if(checkbox2.Checked)
p.Exited = ... // Event handler that starts process 2
p.Start()
答案 1 :(得分:1)
实施后台工作程序以执行process1
http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx
在你的runworker完成事件检查中,看看是否选中了复选框2
//copy and pasted from msdn
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Cancelled == true)
{
//dosomething
}
else if (e.Error != null)
{
//dosomething
}
else
{
if(checkbox2.Checked)
{
//fire off process 2
}
}
}