2010-01-12 5 views

ответ

1

Все удаленные вызовы являются асинхронными в FlashPlayer. Adobe Virtual Machine 2 не поддерживает многопоточность для синхронного вызова. Удаленный вызов дает вам объект (например, AsyncToken), который отправит событие по результату или ошибке.

1

С синхронными вызовами пользовательский интерфейс будет заблокирован до получения ответа. Поскольку API-интерфейс потоковой передачи не работает с разработчиком, а блокировка пользовательского интерфейса совсем не удобна, вызовы внешних источников являются асинхронными. Это позволяет UI продолжать работать во время выполнения вызова. События будут отправляться, когда будет получен результат или ошибка.

Существует одно исключение из этого правила: в AIR можно открыть асинхронные или синхронные соединения с локальной базой данных SQLite.

0

Как происходит сетевой асинхронный вызов? Я согласен с предположением SWF, что вызов в сеть будет асинхронным, но фактические сетевые библиотеки, взаимодействующие с HttpService/Webservice, всегда будут синхронными. Хотя они будут отправлять даже один раз ответ будет получен.

Таким образом, сетевой вызов будет синхронным, если вы не внедряете службу обмена сообщениями. Но с точки зрения SWF, поскольку он не поддерживает многопоточный запрос, он обрабатывает ответ, когда сетевые библиотеки инициируют событие/неисправность завершения.