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

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

 2010-03-25 20:35:05 来源:WEB开发网   
核心提示:SetValueSetValue用来把调用线程的第slot个线程局部变量的值(指针)存放到线程的MFC私有存储空间的第slot个槽位,CThreadSlotData::SetValue(int slot, void *pValue){//通过TLS索引得到线程的MFC私有存储空间pData = (CThreadData

SetValue

SetValue用来把调用线程的第slot个线程局部变量的值(指针)存放到线程的MFC私有存储空间的第slot个槽位。

CThreadSlotData::SetValue(int slot, void *pValue)

{

//通过TLS索引得到线程的MFC私有存储空间

pData = (CThreadData*)TlsGetValue(m_tlsIndex)

//没有得到值或者pValue非空且当前槽号,即

//线程局部变量的个数

//大于使用当前局部变量的线程个数时

if (pData NULL or slot > pData->nCount && pValue!=NULL)

{

if pData NULL //当前线程第一次访问该线程局部变量

{

创建一个CThreadData实例;

添加到CThreadSlotData::m_list;

令pData指向它;

}

按目前为止,线程局部变量的个数为pData->pData分配或重分配内存,

用来容纳指向真正线程数据的指针

调用TlsSetValue(pData)保存pData

}

//把指向真正线程数据的pValue保存在pData对应的slot中

pData->pData[slot] = pValue

}

管理状态

在描述了MFC状态的实现机制之后,现在来讨论MFC的状态管理和相关状态的作用。

模块状态切换

上一页  1 2 3 4 5 6 7 8  下一页

Tags:MFC 教程 MFC

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