我有一段代码必须被两个用来执行它的代码阻止。我的意思是,如果不同的用户按下预览按钮队列应该出现。我在线程中使用这个Lock(this)
,在这种情况下这会起作用吗?我需要这样做以防止用户获得相同的ID,因为GetParticipantID()
从Mysql表中检索MAX(id)并设置为ID。
protected void Preview_Click(object sender, EventArgs e)
{
try
{
CollectInfo();
lock (this)
{
Database db = new Database();
ID = db.GetParticipantID();
db.InsertToParticipantInfo(ID, s1q1, s1q2, s1q3, s1q4, s1q5, s1q6, s1q7, s2q1, s2q2, s2q3, s2q4, s2q5, s2q6, s2q7, s2q8);
db.InsertToParticipantCar(ID, Question1, Question2, Question3, Question4, Question5, Question6, Question7, Question8, Question9, Question10, Question11);
}
}