|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Aug 2010
Адрес: http://sociofilm.ru
Сообщений: 23
|
Подскажите, как можно синхронно загрузить внешний файл?
Асинхронно - все понятно, URLLoader.load и обрабатываем COMPLETE.
Но у меня в программе рекурсия, поэтому надо ее как то приостановить, загрузить файл, добавить из него данные в общую очередь обработки и возобновить выполнение программы с места остановки. Стэк вызовов процедур примерно такой: вот как раз в ProcessCommand() мне надо подгрузить внешний файл, поставить данные в общую очередь обработки и возобновить выполнение рекурсии. Последний раз редактировалось Sociofilm; 16.08.2010 в 12:43. Причина: неправильно написан код |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Надо дожидаться события загрузки.
|
|
|||||
Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
|
Так в чем проблема... По окончании загрузки очередного элемента вызывайте опять метод. Будет та же рекурсия, только растянутая во времени...
|
|
|||||
Регистрация: Aug 2010
Адрес: http://sociofilm.ru
Сообщений: 23
|
Сори, я немного неправильно указал код. Там все это крутится в цикле (я уже исправил код в первом сообщении).
Проблема в том, что пока это все крутится в цикле, событие загрузки не происходит. Надо выйти из цикла, чтобы оно наступило. |
|
|||||
Регистрация: Aug 2010
Адрес: http://sociofilm.ru
Сообщений: 23
|
замечательное предложение! следующее будет "удалите программу"?
|
|
|||||
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
|
Разжевываю:
1. Синхронная загрузка невозможна. 2. Получение события возможно после выполнения действия любой функции и как следствие - требуется выход из цикла. Вывод - надо избавится от цикла и запускать ProcessBlock после загрузки данных. |
|
|||||
Регистрация: Aug 2010
Адрес: http://sociofilm.ru
Сообщений: 23
|
эх, жаль... программа получится кривокодной... ну что ж, спасибо и на этом!
видимо придется делать что то вроде loaderContext, чтоб запоминать состояние всех переменных в классе, а после загрузки файла восстанавливать их... |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
На самом деле, на мой взгляд, циклы имеет смысл использовать только для перебора чего-то там в чем-то там. Например, объектов в коллекции, элементов в массиве или свойств в объекте.
Непосредственно в логике программы при асинхронном программировании циклы ничего кроме головной боли не принесут. Что мы, собственно, и наблюдаем. |
|
|||||
Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
|
Как раз так программа будет более прямокодна в вашей терминологии...
|
Часовой пояс GMT +4, время: 17:00. |
|
« Предыдущая тема | Следующая тема » |
Теги |
загрузить , рекурсия , синхронно , файл |
|
|