如果我们有一个对象,需要将它的属性设置成支持多线程的话,可以在属性的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;
}
}
}
本文介绍了一个通过锁机制实现多线程安全属性访问的例子。以Person类为例,演示了如何在get和set方法中使用lock来确保Name属性操作的线程安全性。

635

被折叠的 条评论
为什么被折叠?



