线程参数问题

时间:2011-03-10 12:46:33

标签: c++ multithreading

我正在处理多线程应用程序我在线程中传递IMAGETHREADINFO结构nSock显示垃圾值。这里有什么问题。IMAGETHREADINFO的指针被声明为CServerConnectionMgr类的成员变量。

typedef struct
{
    int nScok;
    CServerConnectionMgr* pConMgr;

}IMAGETHREADINFO;
void StartImageThread(SOCKET nSock)
{
stThreadInfo = new IMAGETHREADINFO;
stThreadInfo.pConMgr = this;
stThreadInfo.nScok = nSock;

m_hRecordImageThread = CreateThread (   NULL,0,         (LPTHREAD_START_ROUTINE)StreamImageThread,(void*)&stThreadInfo, 0,&m_nRecordImageThreadID);                                                                                                                                             
if ( NULL == m_hRecordImageThread)
{
   return;
} 
int CServerConnectionMgr::StreamImageThread(void *args)
{   

    IMAGETHREADINFO *pImageThreadInfo = (IMAGETHREADINFO*)&args;

}
  1. 这是变量pImageThreadInfo->nSock,显示一些垃圾值
  2. pImageThreadInfo->pConMgr正确
  3. 我这显示错误的值

1 个答案:

答案 0 :(得分:2)

(void*)&stThreadInfo是指向stThreadInfo指针的指针。您可能想要删除&

然后,同时更改IMAGETHREADINFO *pImageThreadInfo = (IMAGETHREADINFO*)&args;,删除&