在一个c#项目中,我在构造函数中调用了一个缓存加载方法来设置一个计时器是不是一个坏主意?
public MyConstructor()
{
cacheDataManager = new MemoryCacheManager();
var timer = new System.Threading.Timer(
e => LoadMyCacheData(),
null,
TimeSpan.Zero,
TimeSpan.FromSeconds(30));
}
//cache data method LoadMyCacheData
请建议谢谢:)
答案 0 :(得分:2)
static MyConstructor()
{
cacheDataManager = new MemoryCacheManager();
var timer = new System.Threading.Timer(
e => LoadMyCacheData(),
null,
TimeSpan.Zero,
TimeSpan.FromSeconds(30));
}
解决方案缓存中的2-是一个类级别,这个概念是远程缓存概念
public class MyConstructor
{
public void Do()
{
MemoryCacheManager.Instance.myObject.ToString();
}
}
public class MemoryCacheManager
{
private MemoryCacheManager()
{
myObject = new object();
}
private static MemoryCacheManager _cacheManager;
public static MemoryCacheManager Instance
{
get
{
if(_cacheManager==null)
_cacheManager=new MemoryCacheManager();
return _cacheManager;
}
}
public object myObject { get; private set; }
}
要解决此问题并转移到项目中的缓存级别,您必须使用单例模式 但更好的企业应用程序解决方案使用缓存服务器,如Ncache或appfabric