大虾们指点指点!!
我是一个C#初学者,正在写一个处理大量数据的控制台程序,程序中实现了A->B->C->....等若干步骤的数据处理过程,
我希望实现实现的效果如下:
1.A先执行,A执行完毕以后B才执行,依次类推
2.B是由A的某个子线程启动的,C是由B发出的某个子线程启动的,依次类推
3.在每个步骤都可能发出若干个子线程,进行数据处理操作,同时在控制台中输出信息提示
4.每个步骤的所有的子线程都结束以后下一步骤才开始执行
大致的情况就像上面写的一样,程序我基本上作出来了,但测试过程中始终感觉不是很稳定,所以请教大家以下几个问题:
1.我在控制台的主程序void Main中只启动了A,当A中的子线程发出以后,控制台窗口是不是直接就结束了(即使子线程没有结束)?我现在是在后面加了一个Console.ReadLine(),才让控制台窗口停止而没有退出,代码示意如下。
void Main()
{
A();
Console.ReadLine();
}
void B()
{
.......
}
void C()
{
.....
}
.......
2.如何精确的判断A步骤中发出的所有子线程都结束了,以方便启动下一步骤的工作。
3.现在我是通过A发出的某个子线程来启动B的(依次类推),但当我想调整各步骤间的先后顺序时比较麻烦,要改几处地方,怎么样的设计可以让我灵活的调整各步骤的顺序。
有可能问题描述得不是很清楚,也有可能问题比较低级,但烦请各位大虾指点指点!!!!!