E 'entrato da Application.Run(Form)
. Non si inserisce alcuna logica in quel ciclo. Se è necessario rispondere all'input, aggiungere i gestori di eventi agli eventi particolari ai controlli nel modulo. Se è necessario eseguire periodicamente la logica, utilizzare una delle classi Timer
.
Il risultato primario della logica nella pompa di messaggio in C++ è l'utilizzo eccessivo/non necessario della batteria sui laptop. È assolutamente necessario iniziare a ripensare ai requisiti effettivi del codice per raggiungere l'obiettivo prefissato e non dovrebbero includere la logica in esecuzione costante in un ciclo di rotazione.
fonte
2009-09-01 21:49:51
Ho il sospetto che tu stia pensando a questo al livello sbagliato. Si potrebbe anche chiedere "dove nel mio programma C#" i dati per alcuni poligoni vengono spostati sulla GPU su un bus. Queste idee non sono concetti in linguaggio C#, sono dettagli di implementazione che librerie, lingue e runtime si allontanano per te. L'intero punto dei form di Windows in C# è quello di assicurarti di non dover mai più pensare ai loop dei messaggi. Sì, i programmi basati su eventi sono costruiti con messaggi di Windows; a volte l'astrazione perde, ma non dovrebbe essere necessario parlare direttamente a livello di messaggio nei casi più comuni. –
@Orm: l'esempio a cui ti sei collegato è un codice scritto male. Se lo usi, ti consiglio di usarlo come riferimento per cosa evitare. –
Io sono, e sì questo è un modo schifoso per farlo. Ci ho provato, e non ha funzionato affatto. – Orm