我在多线程应用程序(托管在 Windows 托管服务中的 WCF 服务)中使用这样的属性:
private object lockObj = new object();
private string val = string.Empty;
[DataMember]
public string Value
{
get
{
lock(lockObj)
{
return val;
}
}
set
{
lock(lockObj)
{
val = value;
}
}
}
在我删除锁之前,通过 WCF 服务发送失败,然后它就可以工作了。(没有当前异常,服务失败而未登录我的跟踪)
是否有可能通过锁来解决它,或者我必须将它转换为一些没有锁的简化对象?