在C#中安全地触发事件通常涉及使用委托的安全调用模式。下面是一种常见的方法:
EventHandler myEvent = MyEvent;
if (myEvent != null)
{
// 触发事件
myEvent(this, EventArgs.Empty);
}
if (myEvent != null)
{
foreach (EventHandler handler in myEvent.GetInvocationList())
{
handler.BeginInvoke(this, EventArgs.Empty, null, null);
}
}
通过以上步骤,可以确保在触发事件时避免出现NullReferenceException或者多线程竞争条件。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:如何在C#中实现事件处理