qq_38105736 2017-03-28 14:17 采纳率: 0%
浏览 741

每隔100ms向DGV中添加一行数据越来越慢,有什么好的办法呢

如题:图片说明
点击按钮,将启用一个定时器每隔100mshttp://ask.csdn.net/#将集合中的一组数据添加到dgv中。但刷新的速度越来越慢,也就意味着有部分定时器事件压根就没有执行。是什么原因导致越来越慢的呢

这是定时器事件:
private void timer1_Tick(object sender, EventArgs e)
{
Thread ord1=new Thread(()=>

       {
           this.Invoke(new Action<string>(c =>
           {
               int inde = dgv1.Rows.Add();
               //添加新行并返回行的索引
               DataGridViewRow row = dgv1.Rows[inde];

               student stur = select.selectRdn();//从集合里随机取一组数据,这组数据将放到row对象里。
               tbName.Text = stur.name;
               tbAge.Text = stur.age.ToString();
               tbScore.Text = stur.score.ToString();

               row.Cells["姓名"].Value = tbName.Text.Trim();
               row.Cells["年龄"].Value = tbAge.Text.Trim();
               row.Cells["成绩"].Value = tbScore.Text.Trim();
               row.Cells["Datetime"].Value = System.DateTime.Now;
               row.Cells["编号"].Value = row.Index + 1;
               dgv1.ClearSelection();//取消选定所有的单元格
               dgv1.CurrentCell = dgv1.Rows[inde].Cells[0];
               dgv1.Rows[inde].Selected = true;
               dgv1.FirstDisplayedScrollingRowIndex = row.Index;
               //tbName.Text = string.Empty;
               ////tbAge.Text = string.Empty;
               ////tbScore.Text = string.Empty;
           }), "1");
    } );
        ord1.IsBackground = true;
        ord1.Start();




    }
            怎么解决变慢的问题呢
  • 写回答

3条回答 默认 最新

  • threenewbee 2017-03-28 15:43
    关注

    数据不要都装入dgv而是存入文件或者数据库,dgv分页显示

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算