Critical Section 之用法
在撰寫多thread 之程式時,有時會碰到不同thread 同時存取一個元件的狀況而造成這個元件存順序上的錯誤,我們可以透過Critical Section 來解決。
在使用結構CRITICAL_SECTION 之前,程式碼需加入標頭檔#include "afxmt.h"
以下是範例:
CRITICAL_SECTION cs; //宣告cs 為一個CRITICAL_SECTION InitializeCriticalSection(&cs); //初始化 cs //進入Critical Section 接下來的程式碼同時只能有一個thread動作 EnterCriticalSection(&cs); //==================================== //放一次只讓一個thread存取的程式碼區塊 //==================================== //離開Critical Section 其他thread可以進入此Critical Section LeaveCriticalSection(&cs);
這樣就可以囉~~~
GOOD!
回覆刪除