code_30629.txt
Схема тестовая.
Если в HTTP_Get выставить Wait:True, то вся форма зависает пока не окончится закачка. Если Wait:False, то зависания формы нет, но и данные с HTTP_Get поступают позже, чем выполняется остальная часть схемы.
Как добиться правильного выполнения схемы без зависания формы?
Этот топик читают: Гость
Ответов: 95
Рейтинг: 2
|
|||
карма: 0 |
| ||
файлы: 1 | code_30629.txt [1009B] [108] |
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Abracadabra писал(а): Как добиться правильного выполнения схемы без зависания формы?Тю! А так не пробовал
|
|||
карма: 22 |
|
Ответов: 95
Рейтинг: 2
|
|||
nesco писал(а): Тю! А так не пробовал В твоей схеме основной поток фактически останавливается на входе HTTP_Get (т.к. больше нет задач) и запускается дальше на выходе. Задача именно в синхронизации с основным потоком. Это возможно? Или можно добиться, чтобы форма не висла наглухо при HTTP_Get Wait:True? |
|||
карма: 0 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Abracadabra писал(а): Или можно добиться, чтобы форма не висла наглухо при HTTP_Get Wait:True?В этом случае, второй поток не запускается, и тормоза будут всегда |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Abracadabra писал(а): Задача именно в синхронизации с основным потоком. Это возможно?Оно уже так и есть:
|
|||
карма: 9 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Galkov писал(а): Оно уже так и естьТак его onStop не устраивает, вот оно в чем дело-то ------------ Дoбавленo в 15.33: Abracadabra, на тебе гемор, если ты не хочешь использовать onStop
------------ Дoбавленo в 15.44: Хотя, нет -- есть вариант без таймера |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
nesco писал(а): Так его onStop не устраивает, вот оно в чем дело-тоЧем Этот метод вроде специально сделан, чтобы он кого-то устраивал, а не наоборот Dilma себе трудился, коды писал, а тут на тебе -- не устраивает Что это ты усмотрел, чего я не увидел.... Нет ведь более адекватного метода для синхронизации, чем Synchronize - хоть из трусов выпрыгни. Хоть загружена основная программа, хоть нет. |
|||
карма: 9 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Galkov писал(а): Что это ты усмотрел, чего я не увидел....Я-то тут причем, это не меня не устраивает, это ТС не устраивает, мое первое предложение было именно с использованием onStop, которое как раз и вызывается из синхронного метода созданного потока. Может у ТС чего-то на хабе еще навешено после запуска, и он хочет подождать загрузки без тормозов и только после окончания продолжить выполнение событий хаба дальше |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Хех
Ну значит послушаем начальника транспортного цеха. А я то сказал потому, что дословно прочитал: вот оно в чем дело-то
Хотя не вижу, какие слова ТС могут отменить утверждение: Нет ведь более адекватного метода для синхронизации, чем Synchronize - хоть из трусов выпрыгни |
|||
карма: 9 |
|
Ответов: 95
Рейтинг: 2
|
|||
спасибо за советы, буду экспериментировать.
|
|||
карма: 0 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Galkov писал(а): Хотя не вижу, какие слова ТС могут отменить утверждениеДа никакие, этот метод желательно использовать везде. Лучше было последовательно соединить цепи, а не параллельно, а то с параллельным соединением гемор получается полный и куча лишних компонентов ------------ Дoбавленo в 16.56: Abracadabra писал(а): спасибо за советы, буду экспериментироватьДва направления дали, сиди и думай, что тебе больше пойдет |
|||
карма: 22 |
|
Ответов: 95
Рейтинг: 2
|
|||
оказалось, не стой стороны я подошёл к проблеме.
Перед HTTP_Get висит BlockFind, который последовательно выдаёт несколько ссылок. Если HTTP_Get Wait:False, то обрабатывается только первая ссылка. code_30635.txt ------------ Дoбавленo в 13.20: ставлю HTTP_Get Wait:True и вешаю в начале схемы Thread - всё работает отлично. Но реальная схема сложнее тестовой, вставить туда Thread - большой геморой. Может перед HTTP_Get кинуть Stack или MemFIFO, собрать все ссылки и потом по одной скармливать HTTP_Get? Ещё варианты есть? |
|||
карма: 0 |
| ||
файлы: 1 | code_30635.txt [1.4KB] [170] |
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Abracadabra писал(а): то обрабатывается только первая ссылкаУ меня твой пример вообще с ошибкой вываливается ------------ Дoбавленo в 13.26: Abracadabra писал(а): Stack или MemFIFO, собрать все ссылки и потом по одной скармливать HTTP_Get?Да почему бы и нет Кто-то мешает попробовать Можешь еше пример посмотреть HiUpdate.sha в корне HiAsm-a, может чем поможет |
|||
карма: 22 |
|
Ответов: 95
Рейтинг: 2
|
|||
nesco писал(а): Можешь еше пример посмотреть HiUpdate.sha в корне HiAsm-a |
|||
карма: 0 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Abracadabra писал(а): к сожалению у меня его нетСтранно, почему нет, он обязательно должен быть, тк входит в базовый комплект Ну на, если нет -- hiupdate_001.sha |
|||
карма: 22 |
| ||
файлы: 1 | hiupdate_001.sha [11.4KB] [227] |
15