大家好,我做的是c/s客户端程序,有一个主页面处理的时间比较长,我想在处理时能跳出一个进度页面,类似进度条不断的在动的样子,我是这样写的
            form1 f1= new form1 ();
            f1.Show();
            Application.DoEvents();
            ......................//往下是主页面程序处理的代码
            f1.hide();
这样的话form1页面里面是不能执行程序的,请问这个问题怎么解决
谢谢

解决方案 »

  1.   

    虽然不知道你里面执行了什么东西,但我建议你另起一线程来执行吧。要不Application.DoEvents(); 也不起作用,暂时假死状态
      

  2.   

    要用到代理异步调用。刚才在另一个贴子上回了一个,你这的情况完全符合啊private delegate DialogResult showmethod();
    private delegate void closemethod();//声明两个代理
    //…………
    form1 f1= new form1 (); 
    showmethod show=new showmethod(f1.ShowDialog);
    show.BeginInvoke(null, null);//异步调用,调用后立即返回,程序向下继续执行
      
    Application.DoEvents(); 
    ......................//往下是主页面程序处理的代码 this.Invoke(new closemethod(f1.Close));//花费时间长的事情做完后,要回到f1窗体所在的线程将其关闭