线程问题?? 其实我对线程一点都不懂,我也不知道这问题是不是由线程导致的,,就是我单步调试的时候,有时候,地方也不固定,原本显示的[3088]辅助线程就会变成什么[3620]辅助线程或是其他线程,然后程序就不按我预想的方向走,不知道跳哪里去了!~~请大家告诉我该怎么处理!~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://topic.csdn.net/t/20020717/14/881090.html看看对你有帮助吗? 我是在页面用了泛型List<T>,导致出现了多线程问题!~~程序会乱跳,,如何控制?? 用LOCK锁定线程 就可以的 不好意思呀,,小弟是菜鸟,,怎么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); } }代码在此!~~ 使用范型不会造成多线程问题吧?多线程之间并发访问需要lock一下。 我也不了解,,我是写在GridView1_RowCommand(object sender, GridViewCommandEventArgs e)里的!~~主要是实现整行数据的上移功能!~~ 不是多线程问题.你说的乱跳可能是他执行到其它事件中去了.比如row_databind等..自己好好查查. 我的代码就在上面,,除了这个事件外再没有别的事件发生,有时他的线程会突然由原本显示的[3088]辅助线程就会变成什么[3620]辅助线程或是其他线程,我在if(e.CommandName=="up")处设置断点,有时它在执行完RowCommand事件的最后一句BindGridView1(SRNo) //再次绑定GridView后,又跑到断点处再重头执行一次!~~很是奇怪!~~其实我实现上移的思路也就是用ListTable把数据表的数据弄进去,然后再把节点号一改再重新插到数据表里再绑定,,老出问题!~~ 帐号为: lixinramaxel41658133 你代码里没有怎么多线程的。???而且。。代码有待改善。 在A窗体的button按下去的时候,调用B窗体上的方法刷新B窗体上的DataGird,给个例子,谢谢 还是数组问题啊 一个sqlDataAdapter初级问题 变量 难题 求助 在WEB(asp.net)中,怎樣彈出一個對話框,選擇確定就做動作,取消就不做動作???? 哪位搞过.net web(c#)部署? 请教个问题!谢谢! NumericUpDown控件怎么加上limmet属性?? 请问如何在.net中动态使用web服务 如何将字符串转换成十六进制 通过路径连接数据库 C#代码出错问题?
就可以的
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);
}
}
代码在此!~~
多线程之间并发访问需要lock一下。
不是多线程问题.你说的乱跳可能是他执行到其它事件中去了.比如row_databind等..自己好好查查.