Il metodo Application.ProcessMessages serve per forzare l'applicazione a gestire tutti i messaggi in coda prima di proseguire nell'esecuzione; forse utilizzi poca CPU poichè non hai messaggi da gestire (pochi timer, nessuna pressione del pulsante, ecc.) al momento della chiamata, altrimenti sarebbe come se quel ritardo non ci fosse.
Il punto della questione non è utilizzare le API o no; il punto è questo: se il thread prevede un blocco di istruzioni cicliche, ad ogni ciclo è bene rilasciare la CPU a Windows in modo che la assegni ad altri processi; la funzione preposta è la Sleep. Altre implementazioni, invece, pur ottenendo un effetto apparentemente simile, non sono valide poichè anche una chiamata al metodo Application.ProcessMessages si traduce in una esecuzione di codice, ma noi non vogliamo eseguire codice o gestire messaggi, vogliamo solo che il thread si metta a tutti gli effetti in pausa.
Ciao!![]()

Rispondi quotando