C#多线程异步线程监控的问题

我现在除主线程外又写了一个异步线程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();

不就是两个线程通信问题吗?