У меня есть Flash UI, который периодически вызывает сервер, чтобы получить обновленную информацию. Вызов использует класс rpc.soap.Operation гибкой SDK. Это выглядит примерно так:
var wsOperation:Operation = Operation(webService.getOperation(SomeOperation));
wsOperation.addEventListener("fault", wsError);
wsOperation.addEventListener("result", wsResult);
wsOperation.send(...some params);
Этот вызов получает некоторые данные из базы данных SQL. Я рассчитал время вызова прямо перед отправкой в начало функции wsResult на ~ 4 секунды. В течение этого времени мой интерфейс не обновлялся. Это заморожено / не отвечает.
Теперь я знаю, что Flash однопоточный / асинхронный, поэтому я не уверен, почему это происходит. Я вижу, что функция send (..) возвращает AsyncToken, который я не использую. Может ли это быть как-то связано с этим?
Любые другие идеи относительно того, почему это происходит, приветствуются. Спасибо.
Я до сих пор не нашел приемлемого решения для этого. Кажется смешным, что мне понадобится псевдо-поток, чтобы получить флэш-память для обновления интерфейса во время 4-секундного вызова. Я задаюсь вопросом, может быть, разбор ответа мыла может занять много времени. Если будет много обработки, будет ли Flash задерживать обновление пользовательского интерфейса на неопределенное время?