none
多线程操作datagridview 造成假死 RRS feed

  • 问题

  • 我用10个线程同时写入一个datagridview数据我用了委托,如果是个或两个线程去调用它时一切正常,如果同时使用5个以上的线程就会假死在这。委托的具体代码如下

    private delegate void SetGVDel(string u,string p);
        private void setgv(string u, string p)
        //private void setgv(string[] arr)
        {
          if (gv1.InvokeRequired)
          {
            SetGVDel del = new SetGVDel(setgv);
            //gv1.Invoke(del, new object[] { u, p });
            this.Invoke(del, new object[] { u, p });
          }
          else
          {
          
          int rowid = gv1.Rows.Add();
          gv1.Rows[rowid].Cells["ID"].Value = rowid;
          gv1.Rows[rowid].Cells["账户"].Value = u;
          gv1.Rows[rowid].Cells["密码"].Value = p;
          if ((rowid - 10) > 0)
            gv1.FirstDisplayedScrollingRowIndex = (rowid - 10);
          
          }
        }
    
    2011年5月9日 5:30

答案

  • 您的帖子我已经回了,为了提高论坛质量,我建议您不要重复发帖关于相同的问题。
    Mark Zhou
    • 已标记为答案 王涵 2011年5月9日 8:16
    2011年5月9日 6:46