Работа цикла в многопоточном режиме. Как исключить повторное использование?



  • Задаю значения цикла в ресурсах.
    0_1521969847211_Снимок2.PNG
    Как исключить повторное использование значений в многопоточном режиме?
    Вот так не помогает..
    0_1521969976683_Снимок1.PNG



  • Сейчас каждый поток берет одно и то же значение.
    Получается по 50 дублей(
    ![0_1521971682198_Снимок3.PNG](Uploading 100%)



  • Ну потому что вы задаете 2 статических числа



  • @minfin на выходе получаем 50 циклов которые делают одно и тоже действие параллельно.
    Для синхронизации работы потоков обычно пользуются глобальными переменными.
    Можно конечно придумать кастыльно-велосипедный алгоритм который будет распределять задачу на потоки что бы каждый поток выполнял свою часть работы.



  • @DrPrime
    Как нужно правильно задать?



  • @minfin
    в онеапликейчене создай список всех значений от и до, скопируй список в глобальную переменную используй это, удаляя каджый элемент из списка и обновляя глобальную переменную не забывая исключить снимания блокировки

    что я не предсказатель

    и помня не стоит создавать сличком большие списки



  • @ruzne
    Пока для меня это тёмный лес.. Думал есть простое решение(



  • @minfin если не случается ошибок и ерунды, передать через ресурс начальное значение, сколько штук после начального значения, и количество потоков, сколько штук в количество удачных исполнений, в статистике скрипта можно узнать количество удачных выполнений, решение не готовое, но может че получится


  • administrators

    @minfin Нужно создать ресурс в OnApplicationStart и поместить туда все значения в цикле.
    Вариант попроще - сгенерировать файл с заданными значениями и использовать его.



  • @support Спасибо!