將類別標記為同步,CLR 自動確保同一時間僅一執行緒存取實例。需滿足:
[Synchronization] 屬性ContextBoundObject (上下文繫結)
[System.Runtime.Remoting.Contexts.Synchronization]
public class SynchronizedClass : System.ContextBoundObject
{
// 所有公開方法自動同步,同一時間僅一執行緒可進入
public void DoWork() { /* ... */ }
}
以上機制均基於「事件喚醒」模式,詳細用法請參閱 MSDN 文檔。