crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> как удалять элемент в QStringList в многопоточной программе?
eldar85
  опции профиля:
сообщение 26.8.2010, 17:17
Сообщение #1


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


Проблема такая, каждый поток должен получать разные значения из QStringList list;
void Thread::run()
{
    
    end = list.length();

    while(end != 0)
    {
        QString str = list[0];

        emit showT(QString::number(end).append("  ").append(str));

       list.removeAt(0);
        end = list.length();
        Sleep(100);
    }

}

QStringList list пренадлежит классу Thread и хотелось бы чтобы к примеру в list было 105 элементов и при запущенных 10 потоках каждый поток брал один элемент себе, сразу удаляя его из list чтобы остальные потоки не могли из него взять это значение. Как только он обработал это значение берет следующее которое ему достанется, а если не осталось то завершает работу и так все потоки.
но у меня получается что каждый поток берет к себе одно и тоже значение и только потом это значение удаляется...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
BRE
  опции профиля:
сообщение 26.8.2010, 17:32
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Посмотри обсуждение: http://www.prog.org.ru/topic_14426_0.html
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 15.1.2025, 20:47