クラスとそのプロパティがあります。これらのプロパティへのアクセスは、さまざまなスレッドによって非常に頻繁に行われます。
各プロパティに同じオブジェクト(lockステートメント用)を使用する方が効率的ですか?
private readonly object padlock = new object();
private string name;
private int age;
public string Name
{
get
{
lock(padlock)
return name;
}
set
{
lock(padlock)
name = value;
}
}
public int Age
{
get
{
lock(padlock)
return age;
}
set
{
lock(padlock)
age = value;
}
}
または、プロパティごとに異なるオブジェクトを使用しますか?
private readonly object padlockName = new object();
private readonly object padlockAge = new object();
private string name;
private int age;
public string Name
{
get
{
lock(padlockName)
return name;
}
set
{
lock(padlockName)
name = value;
}
}
public int Age
{
get
{
lock(padlockAge)
return age;
}
set
{
lock(padlockAge)
age = value;
}
}
2番目のバージョンは意味がありますか?