Прогресс загрузки длинного цикла в flex

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

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

Есть идеи? Спасибо

3 ответа

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

Затем запустите таймер, который работает как можно быстрее. На каждой TIMER событие, завершить как можно больше кусков, находясь под определенным порогом. Это замедлит весь процесс, поэтому вы хотите, чтобы порог был как можно выше.

Вы можете проверить мой класс AsyncSWFModifier для рабочего примера. Это базовый класс, который я расширяю, переопределяя run метод. Я не буду вставлять это здесь, потому что в этом классе есть некоторые не относящиеся к делу детали.

Эти ответы верны, основная проблема в том, что Flash Player является однопоточным.

Сделайте ваши переменные приватными (вне области метода), сделайте несколько таймеров для запуска метода, и вы получите некоторую псевдопоточность, которая не будет блокировать ваш пользовательский интерфейс.

Другие вопросы по тегам