如果我们有一个对象,需要将它的属性设置成支持多线程的话,可以在属性的get,set方法里实现,下面是例子:
对象:人 Person
属性:姓名 Name
代码:
public class Person
{
private object oSync = new object();
private string name;
public string Name
{
get
{
lock (oSync)
return name;
}
set
{
if (string.IsNullOrEmpty(value))
{
throw new ArgumentException("Person's Name cannot be empty!", "Name");
}
lock (oSync)
name = value;
}
}
}