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 :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
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 !
Partager