2012年4月26日 星期四

Critical Section 之用法

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);

這樣就可以囉~~~

1 則留言: