自定义事件参数——我应该使用类成员还是新实例?

本文关键字:新实例 实例 成员 参数 事件 我应该 自定义 | 更新日期: 2023-09-27 17:49:41

我有一个从第三方com互操作调用的回调,它经常被调用。(无数次。)我在一个回调方法中引发一个事件,我很好奇是否为事件参数使用类成员或为每个事件创建事件参数类的新实例会更好?我引发的事件更新UI。

我想知道是否有一个点在创建另一个实例的每个事件,当它将被称为很多

使用类成员:

private ProgressEventArgs m_eventArgs;
public bool ProgressStep(ProgressType eType, string bsMessage, int lProgressPos)
{
    if (ProgressEventStep != null)
    {
        m_eventArgs.Value = lProgressPos;
        ProgressEventStep(this, m_eventArgs);                
    }
    return true;
}

public bool ProgressStep(ProgressType eType, string bsMessage, int lProgressPos)
{
    if (ProgressEventStep != null)
        ProgressEventStep(this, new ProgressEventArgs(lProgressPos));                    
    return true;
}

哪个更合适?或者这有什么关系吗?

自定义事件参数——我应该使用类成员还是新实例?

假设ProgressEventStep的构造函数没有做任何异常的事情,那么创建对象的开销应该很小。

除了性能之外,由于您在第一个场景中重用了相同的对象,因此可能会在多线程场景中获得错误的事件数据。