原创 C# SemophoreSlim

它是Semaphore的輕量級版本,主要是針對本地資源的訪問; 信號量有兩種類型:本地信號量和已經命名的系統信號量,前者是針對本地的應用程序,後者顯示在整個操作系統也使用於進程間的同步; SemaphoreSlim輕量級取代S

原创 C# lock

在MSDN上對該關鍵的使用說明的很清楚 lock關鍵字將語句塊標記爲臨界區,方法是獲取給定對象的互斥鎖,執行語句然後釋放該鎖; Object thisLock = new Object(); lock (thisLock) {

原创 C# AutoResetEvent

該類主要是用來從一個線程向另一個線程發送通知的; 構造函數中使用布爾參數,指示是否將初始狀態設置爲終止狀態的類; 常用的方法: Reset():將事件狀態設置爲終止,從而導致線程受阻; Set():將事件設置爲有信號,從而允許一個

原创 C# var

這個比較簡單,即你不用顯示的聲明某個變量的類型,其會在編譯時自動確定其類型; 但有以下需要確定; 1.必須在定義時初始化 2.一旦初始化,不可再給其賦值不同類型的值; 3.var要求是局部變量; 4.var在效率上和使用強類型方

原创 互斥及其應用

互斥量和臨界段的區別在於:臨界段只能用於單個進程中的多個線程的同步,互斥量則可用於多個進程中線程的同步; 一個有效的同步算法滿足如下: 1.不存在兩個線程同時訪問臨界區的情況; 2.同步方法對CPU速度和處理器數目沒有任何假設; 3

原创 初識readonly關鍵字

首先查看MSDN中提供的說明: readonly關鍵字是可以在字段上使用的修飾符,當字段聲明包括readonly,該聲明引入的字段賦值只能作爲聲明的一部分出現,或者出現在同一類的構造函數中; 我個人覺得上面一句話就是限定了你用reado