我现在除主线程外又写了一个异步线程A
但是我主线程往下执行时,会有一程序需要在这个异步线程完成后才能继续执行,
我现在想写一个异步线程B,来实时监控线程A的执行状态,当线程A执行完后返回true
来让主线程继续执行
请大神帮忙给组织下逻辑
bool ok = false, bInit = false;
Thread b = null;
object locker = new object();
Thread a = new Thread(new ThreadStart(delegate()
{
while (true)
{
//.......
if (b == null)
{
b = new Thread(new ThreadStart(delegate()
{
//b代码,如果成功设置ok为true
//lock (locker) { ok = true; }
}));
b.Start();
}
if (bInit)
{
lock (locker)
{
while (!ok) Thread.CurrentThread.Join(500);//未执行完毕挂起
}
}
bInit = true;
//其余代码
}
}));
a.Start();
不就是两个线程通信问题吗?