Я использую компоненты REST в Delphi XE5 (iOS и Android). В настоящее время я тестирую симулятор iOS, и мое приложение часто зависает в моей строке:
R_Request.Execute;
После некоторой отладки я нахожу, что она специально зависает в этой строке кода внутри REST.Client.PAS:
HandleEvent(DoAfterExecute);
который выглядит следующим образом:
procedure TCustomRESTRequest.HandleEvent(AEventHandler: TMethod);
begin
// Handle Synchronized if we are NOT already in the main thread
// NEVER call synchronize on the MainThread - that might shift the island!
if SynchronizedEvents and (System.MainThreadID <> TThread.CurrentThread.ThreadID) then
TThread.Synchronize(TThread.CurrentThread, AEventHandler) // FAILS HERE
else
AEventHandler;
end;
Это либо НЕ возвращает поток в. Синхронизировать или принимать очень длительное время (5 минут или около того). Он работал один раз во время отладки, но не с тех пор и снова только сейчас (через 30 минут и после того, как он установил 5 минут, чтобы вернуть поток).
Помощь? Или, по крайней мере, любое чувство руководства, которое может мне дать?
Опять же, разработка для iOS и Android (так FMX...) и в настоящее время тестирование через iOS симулятор. Благодарю!