Запуск нескольких потоков с входными параметрами из одного списка

kopc

Client
Регистрация
24.11.2011
Сообщения
146
Благодарностей
56
Баллы
28
Приветствую. Подскажите как решить такую задачу.

У меня есть несколько файлов с проксями, номерами профилей и прочего

Есть шаблон. Работает в 20 потоков. Задача. Как лучше всего раздать каждому потоку свою проксю и свой профиль.

Пробовал в при запуске сказать шабу, чтобы он брал первую строку из списков с удалением, но проблема в том, что все равно некоторые потоки запускаются одновремено и получают одинаковые прокси и профили.

Может кто-то сталкивался с такой задачей, а то очень лениво запускать руками по 1му потоку с периодичностью в 2-3 секунды
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 344
Благодарностей
5 433
Баллы
113
Вобще это не нормально. Если берет строку с удалением, то это строка не может (не должна) браться другим потоком. Да и на сколько я знаю, списки уже давно лочатся и такого просто быть не может (не должно).
Самый ленивый способ решения, поставить рандомную паузу перед тем как брать прокси 1-20 сек. Для полной уверенности поставь 1 поток на процесс в настройках.

Кстати версия какая?

Код:
var List1 = project.Lists["ВХОД"];
while(true)
{
lock(SyncObjects.ListSyncer)
{
    var url1 = List1[0];
    List1.RemoveAt(0);
    if (url1 != "")
    {
    var URL = url1.ToString();
        return URL;
    }
}
}
Попробуй шарпом.
Берет первую строку с удалением. Если список пуст, выдаст ошибку.
"ВХОД" - это список, переименуй под свой (регистрозависим).
В переменную екшена C#, будет записываться строчка первая.
 
Последнее редактирование:
  • Спасибо
Реакции: kopc

kopc

Client
Регистрация
24.11.2011
Сообщения
146
Благодарностей
56
Баллы
28
версия 5,11,4. Вроде тоже читал, что списки локаются, но почему-то пару раз пару потоков подхватывало одинаковые значения. Шарп вроде работает. Спасибо за помощь
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)