WEB开发网
开发学院软件开发VC MFC教程(9)-- MFC的进程和线程(1) 阅读

MFC教程(9)-- MFC的进程和线程(1)

 2010-03-25 20:35:08 来源:WEB开发网   
核心提示:CThreadLocalObject用来帮助实现一个线程局部的变量,成员变量m_nSlot表示线程局部变量在MFC线程局部存储空间中占据的槽号,MFC教程(9)-- MFC的进程和线程(1)(10),GetDataNA用来返回变量的值,GetData也可以返回变量的值,但是如果发现还没有给该变量分配槽号(m_slot=

CThreadLocalObject用来帮助实现一个线程局部的变量。成员变量m_nSlot表示线程局部变量在MFC线程局部存储空间中占据的槽号。GetDataNA用来返回变量的值。GetData也可以返回变量的值,但是如果发现还没有给该变量分配槽号(m_slot=0),则给它分配槽号并在线程的MFC局部空间为之分配一个槽;如果在槽m_nSlot还没有数据(为空),则调用参数pfnCreateObject传递的函数创建一个数据项,并保存到槽m_nSlot中。

template<class TYPE>

class CThreadLocal : public CThreadLocalObject

{

// Attributes

public:

inline TYPE* GetData()

{

TYPE* pData = (TYPE*)CThreadLocalObject::GetData(&CreateObject);

ASSERT(pData != NULL);

return pData;

}

inline TYPE* GetDataNA()

{

TYPE* pData = (TYPE*)CThreadLocalObject::GetDataNA();

return pData;

}

inline operator TYPE*()

{ return GetData(); }

inline TYPE* operator->()

{ return GetData(); }

// Implementation

public:

static CNoTrackObject* AFXAPI CreateObject()

{ return new TYPE; }

};

上一页  5 6 7 8 9 10 11  下一页

Tags:MFC 教程 MFC

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接