Как разделить потоки? - if thread = 1 не работает



  • Заметил, что в функциях, запущенных в несколько потоков номера потоков всегда разные и зависят от скорости вызвавших их потоков. Т.е. этот скрипт с паузами и без выдает разные номера потоков:
    0_1542548806995_9180dac3-6191-4e30-b5eb-eaf1fa8bbb3a-image.png

    Вопрос: Как в таком случае разделить потоки в функции tripleFunc, когда номер потока может быть любой?



  • @senerg потоки асинхронные. Зачем разделение?



  • @simpleuser , в тройной функции у меня планировалось 3 разных запроса в отдельном потоке каждый. Такое нельзя реализовать в БАСе? Если бы БАС считал потоки в каждой функции всегда с единицы, то это можно было бы реализовать. А так даже не знаю что придумать.



  • Держи:
    alt text
    Потоки будут запускаться по очереди и никаких багов не будет с THEARD_INDEX.
    Создай только две глобальные переменные в функции OnApplicationStart так:
    alt text
    Глобальная переменная Lock2 - из ресурса (это сколько всего потоков запускаешь)

    Неделю провозился, чтобы довести до идеала в мае. Делюсь бесплатно :D



  • @fastspace действие спать не может быть меньше секунды. Хоть 10 пиши туда) Все равно будет спать секунду.



  • @simpleuser Пусть спит секунду, главное работает.



  • @fastspace said in Как разделить потоки? - if thread = 1 не работает:

    Держи:

    Спасибо. Только я что-то не пойму как это поможет разделить эти потоки и делать в каждом из них разные действия:
    0_1542617842307_20fedd27-0a0f-451a-91ba-145156f67dea-image.png



  • Так и не нашел. Похоже, в данном случае разделить потоки и выполнять разные функции в каждом потоке не получится.


Log in to reply