其实我对线程一点都不懂,我也不知道这问题是不是由线程导致的,,就是我单步调试的时候,有时候,地方也不固定,原本显示的[3088]辅助线程就会变成什么[3620]辅助线程或是其他线程,然后程序就不按我预想的方向走,不知道跳哪里去了!~~请大家告诉我该怎么处理!~

解决方案 »

  1.   

    http://topic.csdn.net/t/20020717/14/881090.html看看对你有帮助吗?
      

  2.   

    我是在页面用了泛型List<T>,导致出现了多线程问题!~~程序会乱跳,,如何控制??
      

  3.   

    用LOCK锁定线程
      就可以的
      

  4.   

    不好意思呀,,小弟是菜鸟,,怎么LOCK呀??
     if (e.CommandName == "up")
            {
                if (index > 0)
                {
                    int nowid = index+1;
                    int upside = index;
                    for (int i = 0; i < ListTable.Count; i++)
                    {
                        if (Int32.Parse(ListTable[i][1].ToString()) == nowid)
                        {
                            ListTable[i][1] = "0";
                            //ListTable[i - 1][1] = (nowid + 1).ToString();
                        }
                        else if (Int32.Parse(ListTable[i][1].ToString()) == index)
                        {
                            ListTable[i][1] = nowid.ToString();
                        }
                    }
                    for (int k = 0; k < ListTable.Count; k++)
                    {
                        if (Int32.Parse(ListTable[k][1].ToString()) == 0)
                        {
                            ListTable[k][1] = index.ToString();
                        }
                    }
                    string sql = "delete from Sr_AppNode where vAppNo='" + SRNo + "'";
                    sr.ExecuteSQL(sql);
                    for (int j = 0; j < ListTable.Count; j++)
                    {
                        string sql1 = "insert into Sr_AppNode (vAppNo,inode,Iseq,vway,vGoWay,vAuditNo) values ('" + ListTable[j][0].ToString() + "','" + ListTable[j][1].ToString() + "','" + ListTable[j][2].ToString() + "','" + ListTable[j][3].ToString() + "','" + ListTable[j][4].ToString() + "','" + ListTable[j][5].ToString() + "')";
                        conn.Open();
                        SqlCommand cmd = new SqlCommand(sql1, conn);
                        cmd.ExecuteNonQuery();
                        conn.Close();
                    }
                    BindGridView1(SRNo);
                }
            }
    代码在此!~~
      

  5.   

    使用范型不会造成多线程问题吧?
    多线程之间并发访问需要lock一下。
      

  6.   

    我也不了解,,我是写在GridView1_RowCommand(object sender, GridViewCommandEventArgs e)里的!~~主要是实现整行数据的上移功能!~~
      

  7.   


    不是多线程问题.你说的乱跳可能是他执行到其它事件中去了.比如row_databind等..自己好好查查.
      

  8.   

    我的代码就在上面,,除了这个事件外再没有别的事件发生,有时他的线程会突然由原本显示的[3088]辅助线程就会变成什么[3620]辅助线程或是其他线程,我在if(e.CommandName=="up")处设置断点,有时它在执行完RowCommand事件的最后一句BindGridView1(SRNo) //再次绑定GridView后,又跑到断点处再重头执行一次!~~很是奇怪!~~其实我实现上移的思路也就是用ListTable把数据表的数据弄进去,然后再把节点号一改再重新插到数据表里再绑定,,老出问题!~~
      

  9.   

    帐号为: lixinramaxel41658133 你代码里没有怎么多线程的。???而且。。代码有待改善。