Счетчик в многопотоке

Поддержка
  • @fox А если у меня допустим многопоток, и я хочу получать значения которые отдаёт каждый поток по отдельности, т.е. кол-во выполнений того или иного действия, кроме как через Ифы это нельзя никак реализовать?

  • @mordor

    А если у меня допустим многопоток, и я хочу получать значения которые отдаёт каждый поток по отдельности, т.е. кол-во выполнений того или иного действия

    Установил переменную в начале работы скрипта, и увеличиваешь её после выполнения какого нибудь действия. Всё. Можешь создать сколько угодно таких счётчиков.

  • @fox Я имею ввиду по такому принципу http://prntscr.com/kmahva

  • @mordor Очищаешь лог перед выводом и всё. Принцип тот же, увеличиваешь либо глобальную, либо обычную (локальную) переменную.

  • @fox Если будет перезагрузка потока то глобальная переменная объявится на 0 опять. Можно через запись в файл, читать файл сделать. Но тогда гемороя очень много.

  • @bag162

    В OnApplicationStart устанавливаешь глобальную переменную, а в потоках уже увеличиваешь эту глобальную переменную.

    Если будет перезагрузка потока то глобальная переменная объявится на 0 опять

    Нет, не объявится на 0 опять. Так как OnApplicationStart выполняется один раз при запуске скрипта, до начала работы всех потоков.

  • @fox Не знал никогда)

  • This post is deleted!
  • @seoshnek

    Я не обьявлял ее в Onapplicationstart

    Зря..

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

    Я засыпаю и не могу переварить смысл вашей фразы.. Оставлю алгоритм необходимых действий:

    1. Устанавливаете глобальную переменную счётчика в Onapplicationstart
    2. Увеличиваете её в потоках в нужных местах действием увеличить глобальную переменную
    3. Всё
  • @seoshnek said in Счетчик в многопотоке:

    ведь эта функция выполняется до всех потоков, а значит каждый поток получит по нулю в ней. Верно?

    Каждый поток из Onapplicationstart ничего не получит. Каждый поток в свою очередь обратиться к глобальной переменной и получит значение из неё. Глобальная переменная хранится вне потоков и любых функций.
    А смысл Onapplicationstart в том, что действия в ней выполняются один раз до старта потоков, хоть он 1, хоть 100.

  • offtop
    @Antonio Какие люди :D Ты где пропадал почти пол года? С апреля месяца то..

  • offtop
    @Fox оффлайн беспощадно захватил все внимание) Сейчас постепенно возвращаюсь. Жаль только, что Бас как-то не продвинулся в нужных мне направлениях совсем.