Help guys, have products list with singleton class with caching and these 2 methods:
private readonly static object Lock = new object();
private List<BaseItem> GetProducts()
{
lock (Lock)
{
List<BaseItem> products = (List<BaseItem>)HttpRuntime.Cache.Get("Products");
if (products == null)
{
products = DBManager.inst.GetProducts();
HttpRuntime.Cache.Insert("Products", products, null,
DateTime.MaxValue, TimeSpan.FromHours(48));
}
return products;
}
}
And GetProduct:
public BaseItem GetProduct(int ArticulID)
{
lock (Lock)
{
return GetProducts().Where(x => x.Articul == ArticulID).FirstOrDefault();
}
}
Is this the right solution - is it thread safe?