C#的FORM在长时间运行时,就跟死掉一样,怎么样能使程序在运行时,还可以在界面上做其他操作呢?
多线程是可以的,不过我不想用,好像有个什么属性设置一下就可以了,请知道的朋友指导下,谢谢!

解决方案 »

  1.   

    这是IE  与其他浏览器的问题,  也可能是你的系统问题   更有可能是你的硬件的问题。只能说你的CUP运行慢,导致你的程序编译速度变慢啦。没有什么解决的方法,唯一的解决的方法就是你换台高档次的电脑,比如商业机子等、
      

  2.   

    异步委托就也要通过另外开一个线程实现
    IAsyncResult接口
    设置进度条
      

  3.   

    //以前做的一个例子.用XML更新数据的. 采用的异步委托.说白了也是线程的一种      
     public delegate void MyDelegatechaxun(string strXmlPath, DataSet ds, DataGridView dg);
            public delegate void MyDelegategengxin(string strXmlPath, string[] Columns, string[] ColumnValue, string strWhereColumnName, string strWhereColumnValue);
            private Thread Threadchaxun = null;
            private Thread Threadgenxin = null;
            public static void bookchaxun(string v_filepath,DataSet ds,DataGridView dg)
            {
                dg.DataSource = XmlHandle.GetDataViewByXml(@"D:\yibuhuidiao\yibuhuidiao\authors.xml", "book_name='001'", "book_name asc");
            }
            public static void bookupdate(string strXmlPath, string[] Columns, string[] ColumnValue, string strWhereColumnName, string strWhereColumnValue)
            {
                XmlHandle.UpdateXmlRow(strXmlPath, Columns, ColumnValue, strWhereColumnName, strWhereColumnValue);
            }        
            MyDelegatechaxun aa = new MyDelegatechaxun(bookchaxun);
            private void chaxun()
            {
                this.Invoke(aa, @"D:\yibuhuidiao\yibuhuidiao\authors.xml", AuthorsDataSet, dataGridView1);
            }        private void button1_Click(object sender, EventArgs e)
            {
                Threadchaxun = new Thread(new ThreadStart(chaxun));
                Threadchaxun.Start();
            }
            MyDelegategengxin bb = new MyDelegategengxin(bookupdate);
            public void genxin()
            {
                string[] Columns = { "book_name", "author_name", "phone", "address" };
                string[] ColumnValue = { "001", "zxl", "125545", "china" };
                this.Invoke(bb,  @"D:\yibuhuidiao\yibuhuidiao\authors.xml", Columns, ColumnValue, "book_name", "001");
            }
            public void button2_Click(object sender, EventArgs e)
            {
                Threadgenxin = new Thread(new ThreadStart(genxin));
                Threadgenxin.Start();            
            }
      

  4.   

    可以使用控件 BackgroundWorker