外變量讓我們這樣的代碼:Lambda表達式,在多線程
public void Hit(int npage)
{
bool fetch = false;
lock (pagesHit)
{
if (!pagesHit.Contains(npage))
{
pagesHit.Add(npage);
fetch = true;
}
}
if (fetch)
{
pageFiller.Completed += (s, e) =>
{
lock (pagesHit)
{
pagesHit.Remove(npage);
}
};
}
}
此函數可以從不同的線程中調用。目標顯然是爲了避免獲取已經計劃獲取的頁面。填充對象公開通過lambda表達式訂閱的事件。我的問題是:我們可以說多參數場景中的參數npage正確處理嗎?更好:每個事件訂閱收到它自己的npage參數,或最後npage看到傳播到所有事件?