主子窗体通信,打开子窗体后父窗体隐藏,假如子窗体中有个子线程,子线程中的方法执行完成,之后自动关闭子窗体,同时父窗体显示?
现在遇到问题,子线程中的方法执行完成后,怎么自动关闭子窗体,同时父窗体显示?
我怎么知道这个方法完成了呢?
各位遇到这种情况是怎么解决的?
有没有一个小的实例?

解决方案 »

  1.   

    子窗体名.close();
    父窗体名.hide();
      

  2.   

    最好的解决方法是事件,就是完成后的回调可以用 ThreadStart.BeginInvoke(你的回调,);
    令线程同步思路:http://msdn.microsoft.com/zh-cn/library/ms173179(VS.80).aspx
      

  3.   


    //form1
            private void button1_Click(object sender, EventArgs e)
            {
                Form form2 = new Form2();
                form2.Owner = this;
                form2.Show();
                this.Hide();
            }//form2
            private void button2_Click(object sender, EventArgs e)
            {
                ThreadStart threadStart = new ThreadStart(Calculate);
                Thread thread = new Thread(threadStart);
                thread.Start();
                thread.Join();  //当次线程执行完毕后,Join阻塞调用线程,直到某个线程终止为止,本例为次线程  
                this.Owner.Show();
                this.Close();
            }