在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或者多線程競爭條件。