【发布时间】:2011-07-06 20:42:51
【问题描述】:
我已将向量声明为
typedef std::vector SampleList;
并在类中声明了 Samplist 类型的成员变量。
我正在从另一个具有多个线程的类访问此向量。
我正在添加、删除、读取来自不同线程的值。我经常像下面这样读取这个值。
SampleList* listSample;
listSample= ptr->GetList();
while(true)
{
SampleList::iterator itrSample;
itrSample = listSample->begin();
unsigned int nId = 0;
for ( ; itrSample < listRoundRobinSensor->end(); ++itrSample )
{
nId =(unsigned int) *itrSample ;
}
}
itrSample 的值变成像 4261281277 这样的垃圾值。
我试图用critical secion 保护这个列表。我仍然遇到了这个问题。您能否提出建议和解决方案。这对我很有帮助。
【问题讨论】:
标签: c++ multithreading stdvector