get および set コードを実装しなくてもメンバーを簡単に作成できる C# でクラスを作成する簡単な方法が気に入っていますが、(私の知る限り)それらはスレッドセーフではありません!
public class SocksEntry
{
public int Int1 { get; set; }
public int Int2 { get; set; }
}
C# は、これを行うことなくスレッド セーフを追加する簡単な方法を提供していますか?
public class SocksEntry
{
protected object _lock = new object();
// internal
private int _int1 = 0;
private int _int2 = 0;
// accessors
protected int Int1
{
get { lock (_lock) return _int1; }
set { lock (_lock) _int1 = value; }
}
protected int Int2
{
get { lock (_lock) return _int2; }
set { lock (_lock) _int2 = value; }
}
}
スレッドセーフではないバージョンに比べて、明らかにクラス全体が大きくなり、作成するのが面倒になります!