程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#線程資源同步方式總結(6)

C#線程資源同步方式總結(6)

編輯:關於C語言

7.使用System.Runtime.Remoting.Contexts.SynchronizationAttribute對類對象進行同步控制

當我們確定某個類的實例在同一時刻只能被一個線程訪問時,我們可以直接將類標識成Synchronization的,這樣,CLR會自動對這個類實施同步機制, 實際上,這裡面涉及到同步域的概念,當類按如下設計時,我們可以確保類的實例無法被多個線程同時訪問

1).在類的聲明中,添加System.Runtime.Remoting.Contexts.SynchronizationAttribute屬性。

2).繼承至System.ContextBoundObject

需要注意的是,要實現上述機制,類必須繼承至System.ContextBoundObject,換句話說,類必須是上下文綁定的.

一個示范類代碼如下

[System.Runtime.Remoting.Contexts.Synchronization]
publicclassSynchronizedClass:System.ContextBoundObject
{
}

還有AutoResetEvent,ManualReset,EventWaitHandle,Semaphore等可以實現資源的控制,不過它們更多是是基於一種事件喚醒的機制, 如果有興趣可以查閱MSDN相關的文檔

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved