Передать в ручное управление на n секунд?

Поддержка
  • @kuzkuz Я же говорю ,что это костыль, но он может работать. Логику ты понял, защиту от опечаток и ошибок тоже можно сделать циклом проверки. Ожидание изменения переменной тоже можно сделать циклом с паузой допустим 10 сек, через заданное количество циклов выйти из цикла.

  • У тебя же что то предусмотрено на тот случай, если пользователь ничего не делал и скрипт сам продолжился?
    И да, в однопотоке это реально, в многопотоке проблемно.

  • @Gryner said in Передать в ручное управление на n секунд?:

    У тебя же что то предусмотрено на тот случай, если пользователь ничего не делал и скрипт сам продолжился?
    И да, в однопотоке это реально, в многопотоке проблемно.

    Да!
    Ладно, примерно понял. Буду пробовать.
    Жаль конечно что функция взаимодействия юзера не имеет такой фишки!

  • @Gryner said in Передать в ручное управление на n секунд?:

    У тебя же что то предусмотрено на тот случай, если пользователь ничего не делал и скрипт сам продолжился?
    И да, в однопотоке это реально, в многопотоке проблемно.

    Читаю про "ожидание ввода пользователя"

    
     Это действие **не имеет ограничений по времени и продлится до тех пор, пока пользователь ничего не введет.**
     
    
  • @kuzkuz если ничего не ввести, асинхронная функция останется висеть в ожидании. Основной скрипт прождав какое то время пойдет дальше.

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

  • @Gryner said in Передать в ручное управление на n секунд?:

    @kuzkuz если ничего не ввести, асинхронная функция останется висеть в ожидании. Основной скрипт прождав какое то время пойдет дальше.

    Прикольно. В принципе даже получилось для одного потока +- сделать наброски.
    Сейчас затык с тем, как быть в многопотоке. Как сделать так чтобы в нужный поток вернулись введенные данные а не куда попало. Вижу что при вызове функции асинхронно есть THREAD_ID, но куда чего как пока не понимаю

  • @kuzkuz нужно сделать не просто ожидание изменения глобальной переменной переменной, а получить результат ассинхронной функции с тем же THREAD_ID. Результатом может быть как раз тот же введенный результат. Для многопотока это будет правильнее. а вот чтобы пользователь понял ,для какого потока он водит данные, то через глобальную переменную передать в ассинхронную функцию номер потока например и при запросе ввода указать этот поток.

  • @Gryner said in Передать в ручное управление на n секунд?:

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

    ЛОГИЧНО! Но мне пока не понятно как это сделать.

    1. Да, нужно пользователю явно показать для какого потока он вводит данные
    2. Если бы можно было создавать глобальный массив где ячейка это номер потока , а значение это то что ввели было бы супер! Вот поэтому пока и не понимаю. В тоже время не сделать глобальную переменную типа
      INPUT_1
      INPUT_4
      INPUT_7
      т.е. так бы было явно понятно что значения для потоков 1,4,7 соответственно.
      Видимо надо искать примеры реализаций (=
  • This post is deleted!
  • 1 Перед открытием ассинхронной функции номер потока передать в глобальную переменную. В ассинхронной функции получить эту глобальную переменную и сразу перевести в локальную, чтобы избежать конфликта с другими потоками. В тексте, который показывается юзеру указать эту локальную переменную . пользователь вводит данные, фукция завершается и передает результат. В основном скрипте цикл ожидания

  • примерно так тест.xml

  • @Gryner said in Передать в ручное управление на n секунд?:

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

    Огромное спасибо! Премного благодарен! Не знал, что есть такой функционал!!!