这个类在多线程中或者在asp.net中会报错吗 我菜鸟 多线程对我来说是无底洞
public class StateManager
{
private static List<StateEntity> state = new List<StateEntity>(); public static StateEntity Oper(StateOper so, object Par)
{
return new StateManager().Opers(so, Par);
}
public StateEntity Opers(StateOper so, object par)
{
lock (this)
{
if (so == StateOper.Add)
{
state.Add((StateEntity)par);
}
else if (so == StateOper.Del)
{
state.RemoveAt((int)par);
}
else if (so == StateOper.Sel)
{
for (int i = 0; i < state.Count; i++)
{
if (state[i].UserKey == ((StateEntity)par).UserKey)
{
return state[i];
}
}
}
else if(so==StateOper.Upd)
{
for (int i = 0; i < state.Count; i++)
{
if (state[i].UserId == ((StateEntity)par).UserId)
{
state[i].LastTime = ((StateEntity)par).LastTime;
}
}
}
}
return null;
}
} public enum StateOper
{
Add,
Del,
Sel,
Upd
}
public class StateManager
{
private static List<StateEntity> state = new List<StateEntity>(); public static StateEntity Oper(StateOper so, object Par)
{
return new StateManager().Opers(so, Par);
}
public StateEntity Opers(StateOper so, object par)
{
lock (this)
{
if (so == StateOper.Add)
{
state.Add((StateEntity)par);
}
else if (so == StateOper.Del)
{
state.RemoveAt((int)par);
}
else if (so == StateOper.Sel)
{
for (int i = 0; i < state.Count; i++)
{
if (state[i].UserKey == ((StateEntity)par).UserKey)
{
return state[i];
}
}
}
else if(so==StateOper.Upd)
{
for (int i = 0; i < state.Count; i++)
{
if (state[i].UserId == ((StateEntity)par).UserId)
{
state[i].LastTime = ((StateEntity)par).LastTime;
}
}
}
}
return null;
}
} public enum StateOper
{
Add,
Del,
Sel,
Upd
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货