0

私はこのコードを持っています

List<DaSubscription> lstSubscription=new List<DaSubscription>();

for(int i=0;i<20;i++)//20 is just to simulate the behavior
{

    DaSubscription Generic=new DaSubscription();
    Generic.DataChanged += new DataChangedEventHandler(Generic_DataChanged);
    lstSubscription.add(Generic);
}

//EVENT Handler which is raised from a 3rd party library [COM]                 

void Generic_DataChanged(DaSubscription aDaSubscription, DaItem[] items, ValueQT[] values, int[] results)
{
   UpdateDataChangedDTO(items, values);
}

同じイベントハンドラ [m_daSubscription_Generic_DataChanged] が同じクラス [m_daSubscription] の複数のインスタンスに割り当てられているため。私が持っている質問は、同時に複数のインスタンスがこのハンドラーを呼び出す場合、ここでどのように処理されるかです。データを上書きするインスタンスはありますか。または、イベント ハンドラーはインスタンスごとに個別になります。

4

1 に答える 1

0

イベント ハンドラは個別に実行されます。ハンドラーへの別の呼び出しによってパラメーターが上書きされることを心配しているようです。それは起こりません(私はそれが可能だとは思いません)。イベント ハンドラで共有オブジェクトにアクセスしているようには見えないので、完全に安全なはずです。

于 2013-04-03T19:52:34.587 に答える