如何等待子线程执行完毕 再继续主线程?
各位好,
本来就是一个单线程程序,
private void btnStartRun_Click(object sender, EventArgs e)
{
CurrentobjCalpuff.selectPoint = alPoint;
CurrentobjCalpuff.selectLine = alLine;
CurrentobjCalpuff.selectArea = alArea;
CurrentobjCalpuff.CreatePuffInp();
CurrentobjCalpuff.StartCalpuff(); //执行时间大约为20分钟
CurrentobjCalpuff.StartCalpost();
}
这样的话vs2005是抱错的,说执行时间不能超过60秒,在网上搜索了一下,说用多线程可以解决这个问题,因此改为:
private void btnStartRun_Click(object sender, EventArgs e)
{
CurrentobjCalpuff.selectPoint = alPoint;
CurrentobjCalpuff.selectLine = alLine;
CurrentobjCalpuff.selectArea = alArea;
CurrentobjCalpuff.CreatePuffInp();
Thread.CurrentThread.Suspend();
Thread thd = new Thread(new ThreadStart(doEvent));
thd.IsBackground = true;
thd.Start();
if (!thd.IsAlive)
{
Thread.CurrentThread.Resume();
}
CurrentobjCalpuff.StartCalpost();
}
private void doEvent()
{
CurrentobjCalpuff.StartCalpuff();
}
可编译时说suspend已过时,且运行时好像没有达到目的,小弟初次接触多线程,不知道如何实现这一要求,望大家提供最简单的方法,解决马上结帖,谢谢!!!!