OnApplicationStart крашится

Поддержка
  • @kroda said in OnApplicationStart крашится:

    @Fox said in OnApplicationStart крашится:

    А что вы вообще пытаетесь сделать? Функция OnApplicationStart выполняется один раз, в один поток, до старта всех остальных потоков

    Да, я совсем забыл...
    Хотел чтобы потоки на старте работы включались в разное время, тоесть задержка стояла 1 раз и больше в скрипте ее никогда не было
    Идей кроме как сделать костыль вида:

    if [[переменная]] == "скрипт запускается первый раз"
             [[timeout]]
    

    А еще таким образом нельзя завершать потоки :(

  • @FastSpace @Fox Да я понимаю что можно и так и сяк поставить задержку между потоками в начале работы потока, а мне хотелось 1 раз в начале работы скрипта
    Попробовал сделать так, итог краш, я уже не понимаю, я же создал глобальные переменные:

    Почему так?

  • @kroda Мой способ и есть 1 раз в начале работы скрипта между потоками. Все потоки стартнут 1 раз плавно и аккуратно. В конце глобальная переменная ставиться выше значения самого максимального потока и больше не работает.
    Можно переделать если надо по 10 потоков запускать. Дополнительное условие в мой способ добавить, что если поток равен 10, то дополнительно подождать.

  • @kroda said in OnApplicationStart крашится:

    Почему так?

    Вы бы скрипт приложили, потомучто проблема может в чем угодно!

  • @kroda установить паузу 1000*[[THREAD_INDEX]] в начале. Потоки будут стартовать с разницей в одну секунду

  • @FastSpace said in OnApplicationStart крашится:

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

    Так вы обрезали сверху чему равно [[глобал:лок1]] и [[глобак:лок2]]. Чтобы после завершения потока (зеленая надпись succes) - поток снова не присваивал [[глобал:лок1]] и [[глобак:лок2]] те же самые значения, и снова (в начале потока) не делал задержку, нужно установить переменные в OnApplicationStart. Я установил в OnApplicationStart только лишь одну переменную и этого хватило для краша.

    @UserTrue said in OnApplicationStart крашится:

    Вы бы скрипт приложили, потомучто проблема может в чем угодно!

    1 глобальную переменную и 2 условия трудно назвать скриптом, но вот:
    123123.xml

  • @kroda said in OnApplicationStart крашится:

    @FastSpace said in OnApplicationStart крашится:

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

    Так вы обрезали сверху чему равно [[глобал:лок1]] и [[глобак:лок2]]. Чтобы после завершения потока (зеленая надпись succes) - поток снова не присваивал [[глобал:лок1]] и [[глобак:лок2]] те же самые значения, и снова (в начале потока) не делал задержку, нужно установить переменные в OnApplicationStart. Я установил в OnApplicationStart только лишь одну переменную и этого хватило для краша.

    Они равны нулю и нарастают по мере увеличения потоков. В OnApplicationStart на моем скрине должно быть всего 2 переменные.

  • @kroda А зачем вы поставили вложенное условие?
    У вас же в таком случае лочить будет только первый поток. Потому у вас бас и вылетает, у вас все потоки мгновенно завершаются и снова запускаются, получается зацикливание
    Вот, если я вас правильно понял
    123123.xml

  • @FastSpace said in OnApplicationStart крашится:

    Они равны нулю и нарастают по мере увеличения потоков. В OnApplicationStart на моем скрине должно быть всего 2 переменные

    Да, всем большое спасибо, все способы крутые, все получилось

    @UserTrue said in OnApplicationStart крашится:

    А зачем вы поставили вложенное условие?
    У вас же в таком случае лочить будет только первый поток.

    Да я сначала сделал как оператор выше (так же как и Вы), а потом когда стало все крашиться начал уже экспериментировать добавлять какие-то условия.

    @UserTrue said in OnApplicationStart крашится:

    Потому у вас бас и вылетает, у вас все потоки мгновенно завершаются и снова запускаются, получается зацикливание

    Да, но каждый раз в шоке с этого от баса. Почему некоторые работы он делает как нужно. А некоторые как у меня есть 1 простенький скрипт, там ничего кроме работы с текстом нет, в 1 поток, потому что список. И вот если туда загрузить 10к строк, он не будет брать каждую строку с ресурса и работать с ней в списке. Бас попытается разом взять 10к строк и обработать их залпом в 1 поток, мгновенно. Итог: краш.
    Я даже прикола ради - добавил гет запрос на админку своего вай-фай роутера и все сразу заработало как надо, строки ресурса стали обрабатываться по очереди
    Добавить 100 мс. задержку вообще не вариант, потому что это очень долго в сравнении если добавить в работу с текстом любой (ненужный) запрос.

  • @kroda said in OnApplicationStart крашится:

    Почему некоторые работы он делает как нужно

    Видимо вы просто не умеете его готовить )))