Application.ProcessMessages : vraiment le mal ?
Bonjour,
J'ai souvent lu des gens qui déconseillaient l'utilisation de la fonction Application.ProcessMessages sans que je ne comprenne jamais pourquoi.
Dans mon application pour mobile Android, j'utilise cela dans une boucle pour attendre la fin des threads (qui lancent une requête HTTP avec DataSnap).
Ca a l'avantage d'attendre (rien ne doit se passer avant la fin de la requête, donc je veux attendre la fin du thread.
Par exemple comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
thread := TThread.CreateAnonymousThread(procedure
begin
json := ClientModule.ServerMethods1Client.GetUserListFromServer(params);
Env.LastResponse := Now;
end);
thread.FreeOnTerminate := True;
thread.Start;
while not thread.Finished do
Application.ProcessMessages;
Result := json; |
Je sais que l'autre façon de faire est d'envoyer un pointeur de procédure sur le OnTerminate du thread, mais ça me demanderait beaucoup de changements dans mon app dont le code est déjà complexe.
Cette boucle avec Application.ProcessMessages peut-elle provoquer des problèmes, lags, freeze ou bugs (surtout sur Android/iOS)... ? Est-ce vraiment à éviter autrement que pour du purisme de codeur ? Merci !