несколько потоков с векторным итератором

Я объявил вектор как

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 .

Я пытался защитить этот список с помощью критического раздела . Тем не менее, у меня есть эта проблема. Можете подсказать и решение. Это будет мне очень полезно.

5
задан jcoder 6 July 2011 в 12:22
поделиться