外の変数は、このコードを取ることができます:ラムダ式は、マルチスレッド
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);
}
};
}
}
この機能は、異なるスレッドから呼び出すことができます。目標は、すでにフェッチ予定のページを取得することを避けることです。フィラーオブジェクトは、ラムダ式を介して購読されているイベントを公開します。私の質問です:パラメータnpageがマルチスレッドシナリオで正しく処理されていると言えますか?より良い:各イベントサブスクリプションは、npageパラメータを受信するか、最後にnpageがすべてのイベントに伝播しますか?