pansoft писал(а): Буду пробовать все, какой себя покажет лучше отчитаюсь позже.
Попробовал SLEEP и TIMER.
Нашел применение обеим вариантам
Для SLEEP подошел вариант описанного алгоритм
pansoft писал(а): 1)К модулю посылаем запрос по http:\\localhost:8080 используя res = curl.SendRequestStr(), в res сразу же приходит идентификатор запроса.
2)УТМ шифрует, подписывает и отправляет запрос в облако.
3)В облаке формируется ответ(наверное опять шифруется) и отправляется в УТМ.
4)УТМ его расшифровывает и добавляет в список полученных документов.
5)Время от 1 пункта до 4 проходит примерно 2-5 минут. В течении этого времени необходимо проверять список входящих документов на наличие документа с нашим идентификатором используя res = curl.SendRequestStr().
6) Ура в списке появился документ с нашим идентификатором, и рядом ссылочка по которой мы можем забрать данный документ из УТМ используя res = curl.SendRequestStr().
получения справочника продукции, когда нужно чтобы пользователь обязательно дождался ответа (если нет ответа завершение цикла через пять минут), так как во время SLEEP ни что сделать на возможно, по этому пользователю остается только ждать.
Использование таймера TIMER позволяет сделать работу программы псевдо параллельной.
Пример на кассе пикнули сканером бутылку с алкоголем в результате запускается алгоритм, примерно такой же как в сверху, только
по времени 1-3 минуты,
при использовании TIMER можно дальше сканировать товар, только при обработке штрих - кода в самом начале отключать таймер LOC:StartStopTimer=0 а после завершения включать LOC:StartStopTimer=1.
В результате, между сканированиями, процедура будет запускаться, и когда придет ответ, выйдет подсказка.
Вывод SLEEP и TIMER два разных метода:
SLEEP - это РЕАЛЬНАЯ ПАУЗА, программа полностью не доступна.
TIMER - позволяет произвести какое то действие через определенный промежуток времени, не блокируя основные функции программы.