Quali sono i vantaggi di utilizzare DoEvents oltre Repaint in un form utente in VBA?
Domanda
Quali sono i vantaggi di utilizzare DoEvents oltre Repaint in un form utente in VBA? E 'a causa di prestazioni, per ridurre al minimo il fastidio di cose come uno sfarfallio dello schermo, o per quando è necessario aggiornare più di una semplice forma?
Alla ricerca di qualche chiarimento sulla differenza dal punto di vista VBA.
Soluzione
In generale, VB6 e VBA utilizza DoEvents per dire al processore per continuare ad elaborare i messaggi nella coda dei messaggi. Viene utilizzato quando un'operazione trattamento intensivo è stato fatto nel processore e così l'interfaccia utente del programma è ancora sensibile a tutti gli altri eventi.
Esempio: Si sta facendo un algoritmo di ricerca intensiva, se non avete aggiunto DoEvents il programma può riagganciare fino a che non finisce la ricerca. D'altra parte, se si aggiunge DoEvents (per non dire del let ricerca di anello) il programma non riagganciare e ancora in grado di gestire tutti gli eventi del programma, come (Annulla) annullando la ricerca.
EDIT: mi vedo come DoEvents è più completo rispetto Repaint in quanto si occupa di tutti i tipi di eventi, non solo gestire il guizzo / Hangup della UI
.