Я могу вам однозначно сказать, что в Flex 3 нет встроенной конструкции, аналогичной функциональности ProcessMessages
, которую вы описываете.
Самый распространенный способ обойти это - разделить любую обрабатываемую вами работу на очередь «рабочих» задач и «рабочий менеджер» для управления очередью. Когда каждый «рабочий» завершает свою обработку, администратор очереди рабочих выталкивает следующего рабочего из очереди и выполняет его в вызове callLater()
. Это будет иметь эффект, аналогичный «уступке основному потоку», и позволит вашему пользовательскому интерфейсу получать события и реагировать на них, в то же время позволяя продолжить обработку, когда элемент управления вернется к работнику.
После того, как вы все заработаете, вы можете провести некоторое тестирование и профилирование, чтобы выяснить, может ли ваше приложение выполнить выполнение нескольких рабочих перед вызовом callLater()
, и инкапсулировать эту логику в администраторе очередей рабочих. Например, в нашей реализации этого шаблона (с несколькими сотнями рабочих в очереди) мы смогли быстрее выполнить обработку с сопоставимой воспринимаемой производительностью, выполнив 4 рабочих перед тем, как «уступить основному потоку» с callLater()
, но это полностью зависит от объема и характера работы, которую выполняют ваши работники.