Многопоток

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 788
Благодарностей
2 453
Баллы
113
ну вот этот код вроде работает. я на своем списке проверил

C#:
lock(CommonCode.SyncObject){
var list = project.Lists["Входные Email"];
    if(list.Count>0){  
        Random rand = new Random((int)DateTime.Now.Ticks);
        int str = rand.Next(0,list.Count);
        string url = list[str].Trim();
        list.RemoveAt(str);
        return url;
    }
    else throw new Exception("список ссылок пуст");
}
У него не работают коды потому что не добавлен блок
66472

В котором должен находится как раз этот объект: CommonCode.SyncObject
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 526
Благодарностей
1 323
Баллы
113
Не

могу к 7мерке привыкнуть просто. 5я более привычный интерфейс чтоли.
Надумаете переходить, пишите, бесплатно постараюсь подсказать и помочь перейти, так как если вы хотите идти в ногу со временем по шаблонам, то думаю стоит...
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Эх, никто меня не слушает. Пойду бухну...

Смотри, получить рандомную строку. Это значит, от начала и списка и до конца. У нас есть список:
1
2
3

1-й поток получает рандомно 1. 2-й поток тоже получает рандомно 1. 3-й поток получает рандомно 3. Лок тут вообще не при чем. Как и удаление в данном случае ни на что не влияет, потому что в конечном счете строка возвращается в список. Пересечение происходит потому что получается случайная строка, а не потому что лок не работает
неее... погоди. это он получает рандомно цифир строки, а не фактически саму строку. при получении по номеру он должен лочить список. и удалять строку. и тогда у других таже цифирь будет ссылаться на другие строки. это в идеале. а как оно реализовано в кубике зенно фиг знает.
 

volody00

Client
Регистрация
06.09.2016
Сообщения
918
Благодарностей
953
Баллы
93
ну вот этот код вроде работает. я на своем списке проверил

C#:
lock(CommonCode.SyncObject){
var list = project.Lists["Входные Email"];
    if(list.Count>0){  
        Random rand = new Random((int)DateTime.Now.Ticks);
        int str = rand.Next(0,list.Count);
        string url = list[str].Trim();
        list.RemoveAt(str);
        return url;
    }
    else throw new Exception("список ссылок пуст");
}
он работает, потому что строка не возвращается обратно в список
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
  • Спасибо
Реакции: BAZAg

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 526
Благодарностей
1 323
Баллы
113
Не

могу к 7мерке привыкнуть просто. 5я более привычный интерфейс чтоли.
1. Можно как-то получить ваш проект с кубиками проблемными, что бы я мог сложить рапорт о проблеме, что бы ее пофиксили, если реально она будет?
2. И сколько в списке минимум должно быть строк заполненных?
3. Есть какая-то последовательность или закономерность как часто появляется дубликат?
 
Регистрация
28.06.2016
Сообщения
308
Благодарностей
17
Баллы
18
Да, коды не работали потому-что не был добавлен блок. Сейчас коды заработали, но проблема осталась(
 

Вложения

volody00

Client
Регистрация
06.09.2016
Сообщения
918
Благодарностей
953
Баллы
93
Потому что ссылка берется с удалением и Ваша теория к данной проблеме не имеет никакого отношения
Да ну?
Всем привет. Нужна помощь.
Есть шаблон в котором из списка берется случайная ссылка с удалением. При включении шаблона в 2ва потока или более.. 1на и таже ссылка отрабатывает паралельно в разных потогках. Что изменить или добавить в шаб чтоб было все красиво?
По теме. 7.2.0.0. не воспроизводится. 100 потоков, 1000 выполнений, не одного пересечения. Так что я бы сто раз перепроверил, прежде чем рапорты в баг трекер слать. Прикрепил проект
 

Вложения

  • 11,3 КБ Просмотры: 59
Регистрация
28.06.2016
Сообщения
308
Благодарностей
17
Баллы
18
Да ну?


По теме. 7.2.0.0. не воспроизводится. 100 потоков, 1000 выполнений, не одного пересечения. Так что я бы сто раз перепроверил, прежде чем рапорты в баг трекер слать. Прикрепил проект
аа, это 7я версия проэкта. спасибо попробую чуть позже ознакомится, а то щас на 5й версии проэкт крутится.
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 526
Благодарностей
1 323
Баллы
113
аа, это 7я версия проэкта. спасибо попробую чуть позже ознакомится, а то щас на 5й версии проэкт крутится.
Если это вы мне в личку написали, тогда буду ожидать шаблон и посмотрю что с ним. А откуда в списке беруться строки? Они заготовленные заранее или парсятся в процессе работы бота?
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
Список привязан к файлу?
Если да, то в настройках списка отмечен чекбокс "Сохранять изменения списка в файл"?
66509
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
да ладно.... так тоже бывает ? :-)
Почему бы и нет? :-)
Всю тему перечитал и скринов настроек списка или шаблона от ТС не встретил.

По симптомам похоже - каждый поток создаёт локальную копию списка и работает с ней, отсюда и дубли при работе.
 
  • Спасибо
Реакции: Alexmd

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