我需要根据变量或属性的值锁定一段代码。假设正在调用我的方法并传递 UserData 对象。
UserData contains two properties
UserID and Marks
而目前的锁码就像
var l=new Object();
lock(l)
{
//Update marks of a particualr user id to UserData.Marks
}
现在它将锁定此方法的所有内容,假设它正在更新 UserID=1 的标记,它仍会锁定其他用户 ID 的未来调用,我希望它锁定对正在访问的特定用户 ID 的请求锁定,在这种情况下用户 1. 其他应自由移动。
我的想法是创建一个新的锁定对象,创建一个包含用户 ID 属性的锁定自定义类。当请求到来时,我会根据该特定值创建一个锁。我什至不知道这是否可能。请引导我正确的方向。