private static WaitForm wf = new WaitForm();//这是等待窗口
static bool C_WaitState = false;
public bool Set_WaitState {
    set {
        C_WaitState = value;
        Thread thread = new Thread( new ThreadStart( cm_WaitOpen ) );        if ( C_WaitState ) {
            thread.Start();
        } else {
            thread.Interrupt();
        }
    }
}private void cm_WaitOpen() {
    if ( ! wf.Visible ) {
        wf.Show();
    }
}我的目的:
    我单另做了一个等待窗口(waitForm)
    因为考虑到速度,我想开一个线程来显示这个窗口,免得他装死
这段代码的测试结果:
    属性设置为 true 时,那个 waitForm 闪了一下就消失了不好意思,题目多打了一个 0

解决方案 »

  1.   

    在主线程里用用Application.Doevents();和Thread.Sleep(1000);睡眠一下就不会假死啦.
    例如:
    while(true)
    {
       if(flag==false) break;
       Application.Doevents();
       Thread.Sleep(1000);
    }在副线程里完全做完你要做的东西之后就flag=false
      

  2.   

    Application.Doevents();勉强接受,但 Thread.Sleep(1000);  还不如别用多线程算了,不问了http://community.csdn.net/Expert/topic/4538/4538318.xml?temp=.2534143
    这个地方有 100 分 回复人: handsome0916() ( 你过去顶一下
      

  3.   

    回复人: handsome0916() ------------------------------------
    我说了 这贴是 130分
    因为还有一个加分的贴
    http://community.csdn.net/Expert/topic/4538/4538318.xml?temp=.2534143
    你过去拿剩余的 100分
      

  4.   

    你窗口一闪而过的原因是你使用了Show()函数,你应该使用ShowDialog(),让窗口停留在那里,并等待返回。
    Show函数在线程执行时,马上就返回了,在线程结束时,窗口也同时被关闭了。
      

  5.   

    可我在工作线程中,调用form.DialogResult=DialogResult.OK经常关不掉程序。