我有以下情形:asp.net缓存的多线程锁的webpart
比方说,我们有相同的数据操作两个不同的webpart - 一个是一个饼图,另一种是数据表。 在它们的Page_Load中,它们异步加载数据库中的数据,并在加载时将其放入应用程序缓存中以供其他Web部件进一步使用或使用。因此,每个ØWeb部件具有类似下面的代码:
protected void Page_Load(object sender, EventArgs e)
{
if (Cache["dtMine" + "_" + Session["UserID"].ToString()]==null)
{
...
Page.RegisterAsyncTask(new PageAsyncTask(
new BeginEventHandler(BeginGetByUserID),
new EndEventHandler(EndGetByUserID),
null, args, true));
}
else
{
get data from cache and bind to controls of the webpart
}
}
因为两个的webpart它没有任何意义,我两次执行的代码相同的数据进行操作。
让一个Web部件与另一个Web部件进行通信的最佳方法是什么?“我已经获取数据,所以请等到我将它放入缓存中”?
我一直在考虑互斥,锁定,将临时值分配给缓存项目,并等待该临时值更改...许多选项 - 我应该使用哪一个。
为什么不制作一个静态辅助类? – Earlz 2011-06-09 17:58:30