dataGridView控件邦定dataTable,当动态向dataTable添加数据时,当dataGridView需要使用滚动条时,程序会死如何解决?

解决方案 »

  1.   

    to 当动态向dataTable添加数据时,当dataGridView需要使用滚动条时,程序会死动态添加?用线程?
    最好说说相关操作或代码。
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Net.NetworkInformation;namespace test2
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                table.Columns.Add("字段");
                dataSet1.Tables.Add(table);
                this.dataGridView1.DataSource = dataSet1;
                this.dataGridView1.DataMember = this.dataSet1.Tables[0].TableName;
            }
                DataTable table=new DataTable();
            private void button1_Click(object sender, EventArgs e)
            {
                t=new System.Threading.Thread[10];
                for (int i = 0; i < 10; i++)
                {
                    t[i] = new System.Threading.Thread(new System.Threading.ThreadStart(go));
                    t[i].Start();
                }
            }
            System.Threading.Thread[] t;        void go()
            {
                lock (this.table)
                {
                    for (int i = 0; i < 100; i++)
                    {
                        this.table.Rows.Add(new object[] { "aaa" });
                    }
                }
            }    }
    }//看看代码
      

  3.   

    加一千条aaa?首先,你这里只是添加数据,用lock没有什么意义;
    其次,由于数据动态加载,且系统cpu资源已经全被线程占用,因此此时其它事件会无法及时响应。
    要么,在线程加上Application.DoEvents或者用Thread.Sleep来水面一段时间;
    要么,推迟数据绑定。
      

  4.   

    我今天也遇到這種問題了,我寫了一個小程序,試了試,沒問題,可是同樣的程序放到我的項目中就會卡死datagrid。不知道怎麼辦了。