C#事件处理程序行为

时间:2013-04-03 19:38:11

标签: c# .net events

我有这段代码

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]的多个实例。我有的问题是,如果多个实例同时调用此处理程序,将在何处处理。会不会有任何覆盖数据的实例。或者每个实例的事件处理程序都是独立的。

1 个答案:

答案 0 :(得分:0)

事件处理程序单独执行。听起来你担心这个参数会被另一个对处理程序的调用所覆盖。这不会发生(我认为它甚至不可能)。由于它看起来不像您正在访问事件处理程序中的任何共享对象,因此您应该非常安全。