关于CThreadSlotData中的一点问题!
我想知道CThreadSlotData中的
void ::SetValue(int nSlot, void* pValue)
{
// 通过TLS索引得到我们为线程安排的私有存储空间
CThreadData* pData = (CThreadData*)::TlsGetValue(m_tlsIndex);
.......
我就是这里不太明白,Setvalue这个函数怎么通过TLS索引机可以得到我想要设置的线程的数据结构的指针,我就想CThreadSlotData中的m_list链表中管理着很多的CThreadData结构,它就怎么能通过 TlsGetValue(m_tlsIndex)一下子就能实现要找到线程!我很困惑啊,能帮我一下吗!看来今天了也不行啊?这个谜团就是解不开啊!再者就是槽号问题:一次只能用AllocSlot()分配一个槽号给一个线程,当其他线程分配时,那这个槽号它就不能用了吗?
要是能用,它这样才能用这个槽号设置数据呢? 问题有点长,见谅!在下先谢谢了!