锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲综合精品四区,国产一区 二区 三区一级,精品系列免费在线观看http://www.aygfsteel.com/sunlea/category/1947.html鍦ㄨ璦鐨勬搗媧嬮噷娓稿姩錛屽湪璁捐鐨勫ぇ鍦頒笂椹伴獘錛屽湪鎬濇兂鐨勮摑澶╅噷緲辯繑錛屽湪鎶鏈殑澶┖涓帰绱€?/description>zh-cnFri, 02 Mar 2007 03:30:50 GMTFri, 02 Mar 2007 03:30:50 GMT60- 鍑芥暟涓寸晫閿?Function Critical Section Lock)http://www.aygfsteel.com/sunlea/articles/7483.htmlSunlea 鐨勭┖闂?/dc:creator>Sunlea 鐨勭┖闂?/author>Sun, 10 Jul 2005 17:33:00 GMThttp://www.aygfsteel.com/sunlea/articles/7483.htmlhttp://www.aygfsteel.com/sunlea/comments/7483.htmlhttp://www.aygfsteel.com/sunlea/articles/7483.html#Feedback0http://www.aygfsteel.com/sunlea/comments/commentRss/7483.htmlhttp://www.aygfsteel.com/sunlea/services/trackbacks/7483.htmlTCriticalSection鐨勪唬鐮?/P>
#pragma聽once


//#include聽
#include聽<afxmt.h>
#include聽<iostream>


namespace聽cj


{

class聽TCriticalSection


{
private:
聽聽聽聽CRITICAL_SECTION聽FCriticalSection;
public:
聽聽聽聽TCriticalSection(void)

聽聽聽聽
{
聽聽聽聽聽聽聽聽InitializeCriticalSection(&FCriticalSection);
聽聽聽聽}
聽聽聽聽~TCriticalSection(void)

聽聽聽聽
{
聽聽聽聽聽聽聽聽DeleteCriticalSection(&FCriticalSection);
聽聽聽聽}
聽聽聽聽void聽Enter(void)

聽聽聽聽
{
聽聽聽聽聽聽聽聽EnterCriticalSection(&FCriticalSection);
聽聽聽聽}
聽聽聽聽void聽Leave(void)

聽聽聽聽
{
聽聽聽聽聽聽聽聽LeaveCriticalSection(&FCriticalSection);
聽聽聽聽}
};

};聽聽//namespace聽cj
鍑芥暟閿佺殑涓昏綾?TLocalCriticalSectionLock)鏈変唬鐮?BR>
#pragma聽once


#include聽"CriticalSection.h"


#define聽DeclareLocalCriticalSectionLock(聽A_CriticalSectionName聽)聽聽聽聽\
聽聽聽聽TCriticalSection聽A_CriticalSectionName;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽\
聽聽聽聽friend聽class聽TLocalCriticalSectionLock;

#define聽TriggerLocalCriticalSectionLock(聽A_CriticalSectionName聽)聽聽聽聽聽聽聽聽\
聽聽聽聽TLocalCriticalSectionLock聽FunctionCriticalSectionLock(this->A_CriticalSectionName);


namespace聽cj


{

class聽TLocalCriticalSectionLock


{
private:
聽聽聽聽TCriticalSection聽*FCriticalSection;
public:
聽聽聽聽inline聽TLocalCriticalSectionLock(TCriticalSection聽&ACriticalSection):FCriticalSection(&ACriticalSection)

聽聽聽聽
{
聽聽聽聽聽聽聽聽FCriticalSection->Enter();
聽聽聽聽}
聽聽聽聽inline聽~TLocalCriticalSectionLock(void)

聽聽聽聽
{
聽聽聽聽聽聽聽聽FCriticalSection->Leave();
聽聽聽聽}

};

};聽//聽namespace聽cj
嫻嬭瘯紼嬪簭
//聽CritialLock.cpp聽:聽瀹氫箟鎺у埗鍙板簲鐢ㄧ▼搴忕殑鍏ュ彛鐐廣?BR>
//


//#include聽"stdafx.h"
//#include聽"CriticalSection.h"

#include聽"LocalCriticalSectionLock.h"
#include聽<winbase.h>
#include聽<process.h>
#include聽<iostream>

using聽namespace聽cj;

//-------------------------------------------------------------------------------------------

const聽int聽ThreadHandleListSize聽=聽10;

//-------------------------------------------------------------------------------------------
class聽GObject


{
private:
聽聽聽聽DeclareLocalCriticalSectionLock(FFunctionLock)
public:
聽聽聽聽int聽GetInteger(void)

聽聽聽聽
{
聽聽聽聽聽聽聽聽TriggerLocalCriticalSectionLock(FFunctionLock);
聽聽聽聽聽聽聽聽//TLocalCriticalSectionLock聽lcsl(this->cs);
聽聽聽聽聽聽聽聽std::cout<<"Enter************************"<<std::endl;
聽聽聽聽聽聽聽聽std::cout<<"GetInteger"<<std::endl;
聽聽聽聽聽聽聽聽std::cout<<"Leave||||||||||||||||||||||||"<<std::endl;
聽聽聽聽聽聽聽聽return聽1;
聽聽聽聽}
};

//-------------------------------------------------------------------------------------------
聽聽聽聽GObject聽obj;

//-------------------------------------------------------------------------------------------
void聽_cdecl聽ThreadFunction(void*)


{
聽聽聽聽for聽(int聽i=0;i<20;i++)

聽聽聽聽
{
聽聽聽聽聽聽聽聽obj.GetInteger();
聽聽聽聽}
聽聽聽聽_endthread();
}

//-------------------------------------------------------------------------------------------
int聽_tmain(int聽argc,聽_TCHAR*聽argv[])


{
聽聽聽聽uintptr_t聽ThreadHandleList[ThreadHandleListSize];
聽聽聽聽
聽聽聽聽for(int聽i=0;i<ThreadHandleListSize;i++)

聽聽聽聽
{
聽聽聽聽聽聽聽聽ThreadHandleList[i]聽=聽-1;
聽聽聽聽}

聽聽聽聽for(int聽i=0;i<ThreadHandleListSize;i++)

聽聽聽聽
{
聽聽聽聽聽聽聽聽ThreadHandleList[i]聽=聽_beginthread(ThreadFunction,1024,0);
聽聽聽聽}
聽聽聽聽
聽聽聽聽std::cin.get();
聽聽聽聽return聽0;
}




]]>
主站蜘蛛池模板:
尉氏县|
雅安市|
汝城县|
渝北区|
浦县|
赣州市|
建始县|
米脂县|
滦平县|
新闻|
张家口市|
岱山县|
清徐县|
江华|
沙湾县|
乌拉特前旗|
武陟县|
京山县|
渝中区|
宜都市|
丰城市|
松桃|
陇川县|
潮安县|
进贤县|
马公市|
内乡县|
玉屏|
慈溪市|
陆川县|
夏河县|
肥西县|
灵宝市|
蒲城县|
全椒县|
太和县|
霍邱县|
进贤县|
延津县|
宾阳县|
泌阳县|