10.9w+
社区成员
private static object LockFlag = new object();//全局
//具体程序片断
paralell.foreach(list,(m)=>
{
lock(LockFlag )
{
//想要执行的代码,
}
});
lock (UserInfo.List)
{
for (int i = 0; i < UserInfo.List.Count; i++)
{
if (UserInfo.List[i].Name == 5 + "张三")
{
Thread.Sleep(5000);
UserInfo.List[i].Id = 900000000;
// UserInfo.List[i].Name = "王五";
break;
}
}
dataGridView1.DataSource = null;
dataGridView1.DataSource = UserInfo.List;
}
然后
UserInfo.List.Remove(UserInfo.List[1]);
dataGridView1.DataSource = null;
dataGridView1.DataSource = UserInfo.List;
发现修改的错误 不是我想修改的.哎悲剧了,其他什么集合好用哎,hashtable好像没得排序得 有点悲剧.private static object LockFlag = new object();
private static LockFlag = new object();
然后读写ListInfo都要使用它互斥,例如lock(LockFlag)
{
var x = ListInfo[i];
ListInfo.Remove(x);
}
注意,不仅仅是写,往往在读ListInfo的时候也需要。