String、decimal?、DateTime? のいずれかの約 15 個のプロパティを持つオブジェクトがあります。またはint?複数のスレッドから操作されるこのクラスのコレクションがあります。最小限のコードを記述しながら、オブジェクトのプロパティの値がスレッド セーフな方法でアクセス (読み取り/書き込み) されるようにしたいと考えています。プライベートバッカーを使用して、すべてのプロパティのゲッターとセッターで明示的なロックを行う代わりに、そのような方法はありますか? 各プロパティに対して今やらなければならないことは次のとおりです。
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;
}
}
}
}