【发布时间】:2011-07-17 11:39:18
【问题描述】:
我有一个实现单例模式的静态 DataLibrary 类。
public static FacilityRepository FacilRepo
{
get
{
if (_facilRepo == null)
{
_facilRepo = new FacilityRepository(Authenticated.UserId);
if (Authenticated.FacKey.Length > 0)
{
foreach (var fac in _facilRepo)
fac.IsSelected = (fac.FacilityKey == Authenticated.FacKey);
}
}
return _facilRepo;
}
}
private static FacilityRepository _facilRepo;
当我使用 Task.Factory.StartNew 从不同的线程访问它时,FacilityReposity 会被重新创建多次,我该如何避免这种情况。
【问题讨论】:
-
如果您同时创建许多新线程并且它们都试图访问 FacilRepo 属性。这可能是因为该属性周围没有锁定。看看en.csharp-online.net/…(右下角)
标签: c# multithreading static task