多线程中无法获得queue解决办法

多线程中无法获得queue#pragma once#include Packet.h#include queuetypedef std::queueCPacket Pac

多线程中无法获得queue
#pragma once

#include "Packet.h"
#include <queue>

typedef std::queue<CPacket> PacketQueue;//CPacket是说我定义的类

class CThreadParam
{
public:
CThreadParam(void);
~CThreadParam(void);
//时延统计标志
BOOL m_bdelay;
//吞吐量统计标示
BOOL m_bthruput;
// 包队列
PacketQueue m_ptQueue;
};






UINT __cdecl CStartMdlDlg::sink(LPVOID pParam)
{
Sleep(1);
PacketQueue pckQ = ((CThreadParam *)pParam)->m_ptQueue;/*此处出错,断点运行时等号右边是正确的,等号左边pckQ没有得到正确数据*/

CPacket pt;
pt = pckQ.front();

return 0;
}






[解决办法]
PacketQueue pckQ = ((CThreadParam *)pParam)->m_ptQueue;
--》
PacketQueue& pckQ = ((CThreadParam *)pParam)->m_ptQueue; //改成引用,就是给这个变量取个别名