现在我有一个MIDI主窗体,还有一个子窗体,一个弹出小窗口。子窗体主要进行各种按钮操作;弹出小窗口有一个datagridview控件,并且新建了一个线程,用不停的更新datagridview数据源。程序运行时,子窗体在MIDI主窗体中显示,弹出小窗口同时也显示在屏幕左下角。现在的问题是:当弹出小窗口每次更新数据源时,MIDI主窗体的子窗体都会卡一下,影响了子窗体的操作。请问大家,怎么才能让弹出小窗口更新数据源的时候,不影响MIDI主窗体的子窗体,不会出现卡的情况????这个问题要怎么解决呢??请大家都来帮忙,解决给分!!!

解决方案 »

  1.   

    卡是因为处理数据占用了cpu,可以异步处理数据(线程后台处理),处理完通知UI界面显示
      

  2.   

    你的子窗体是模式对话框还是非模式对话框?如果是模式对话框就会出现你说的问题。
    我以前子窗体是非模式对话框。子窗体在主窗体的容器里面。这样子窗体在进行其他操作的时候不会影响子窗体!
    form2是子窗体
       Form2 f2 = new Form2();
                //f2.MdiParent = this.MdiParent;
                //f2.TopMost = true;            f2.MdiParent = this;
                f2.FormBorderStyle = FormBorderStyle.None;
                f2.Dock = DockStyle.Left;            f2.Show();
      

  3.   

    还有你的弹出窗口 更新数据时 需要更新你MDI子窗体吗?
      

  4.   

    我的弹出窗口,更新数据时,只会更新弹出窗口的datagridview,跟其他窗体没关系。
      

  5.   

    我的MIDI子窗体是模式对话框。
      

  6.   

    弹出窗口是新建了一个线程Thread,在不停的更新datagridview数据源。