我有一个对象,它有大约 15 个字符串、十进制?日期时间?或int?我有一个从多个线程操作的此类的集合。我想确保以线程安全的方式访问(读/写)对象属性的值,同时编写最少的代码。有没有这样一种方法,而不是使用私人支持者并在每个属性的 getter 和 setter 中进行显式锁定?这是我现在必须为每个属性做的事情:
public class ManyProperties
{
private Object mLock = new Object;
private string _personName;
public string PersonName {
get {
lock (mLock){
return _personName;
}
}
set {
lock (mLock){
_personName = value;
}
}
}
private string _beginAmount;
public decimal? BeginAmount {
get {
lock (mLock){
return _beginAmount;
}
}
set {
lock (mLock){
_beginAmount = value;
}
}
}
}