日期:2014-05-17  浏览次数:20967 次

MDI子窗体中多线程弹出等待提示
           
在进行长时间处理时弹出提示窗口
在一般窗口中下面的代码可实现

            FrmWait wForm;
            wForm = new FrmWait();
            Thread thread= new Thread((ThreadStart)delegate
            {
                Application.Run(wForm);
            });
            thread.Start();
            DoSomthing();//数据处理函数耗时比较长
            wForm.Invoke((EventHandler)delegate { wForm.Close(); });

但是在MDI模式的子窗体中使用,报错在创建窗口句柄之前不能在控件上调用Invoke。
while (!this.IsHandleCreated) 

    ; 

没作用。
对线程不是很了解有什么解决办法吗?
线程

------解决方案--------------------
thread.Start();线程执行后,代码会继续运行,wForm可能还没有准备好