情况是这样的, 在点击过窗体中的一个按钮后, 程序开始处理数据, 这时用鼠标点击窗体便会出现无响应, 将鼠标指针设置为忙也无济于事, 请问该怎么办, 才行啊? 谢谢

解决方案 »

  1.   

    如果是循环的话,在循环中加入
    system.windows.forms.application.doevents();
    要不,用多线程做吧。
      

  2.   

    看这里文章,楼主就能解决问题,
    通过多线程为基于 .NET 的应用程序实现响应迅速的用户
    http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/softwaredev/misMultithreading.mspx
    为Windows应用创建简单的异步调用模式
    http://www.microsoft.com/china/MSDN/library/architecture/AsynCallPattern.mspx
      

  3.   

    delegate void xxxxDataDelegate();
    private void btnProcess_Click(object sender, EventArgs e)
    {
         xxxxDataDelegate dl = new xxxxDataDelegate (你处理数据的方法);
         IAsyncResult asyncResult = dl.BeginInvoke(null, null);
                    while (true)
                    {
                        if (asyncResult.IsCompleted)
                        {
                            break;
                        }                    Application.DoEvents();
                        Thread.Sleep(0);
                    }    dl.EndInvoke(asyncResult);
    }
      

  4.   

    开个线程吧。
    _responseThread = new Thread(new ThreadStart(sponse));    // 线程
    _responseThread.IsBackground = true;                        // 后台运行
    _responseThread.Start();                                    // 线程启动void sponse()
    {
      //执行的方法
    }利用代理异步操作也行。