锘??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>

usingnamespace聽cj;

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

constint聽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;
聽聽聽聽聽聽聽聽
return1;
聽聽聽聽}

}
;

//-------------------------------------------------------------------------------------------
聽聽聽聽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();
聽聽聽聽
return0;
}





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