事件調度中的競爭條件
C# 中的事件通常使用以下程式碼進行調度:
public event EventHandler SomeEvent; ... { .... if(SomeEvent!=null)SomeEvent(); }然而,在多執行緒環境中,這種方法可能會導致競爭條件。下面是它的發生方式:
protected virtual void OnSomeEvent(EventArgs args) { EventHandler ev = SomeEvent; if (ev != null) ev(this, args); }這種方法是執行緒安全的,因為:
以上是在 C# 中分派事件時如何避免競爭條件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!