我有以下情形: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