我喜欢在 C# 中创建类的快速方法,我们可以轻松地创建成员,而无需实现 get 和 set 代码,但是(据我所知)它们不是线程安全的!
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; }
}
}
与非线程安全版本相比,它显然使整个类变得更大并且创建起来很痛苦!