Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 21695|Risposta: 1

[Fonte] .net/c# Fai attenzione agli eventi che rallentano il tuo programma

[Copiato link]
Pubblicato su 21/09/2016 16:05:58 | | | |
Gli eventi vengono caricati ed eseguiti sul thread principale, e se il primo evento sul thread principale non è finito, arrivi al secondo evento, proprio come altri programmi nel thread principale, aspetti che il precedente finisca l'elaborazione prima di elaborare il successivo o un altro programma o evento nel thread principale.




Quanto sopra è che ho incapsulato io stesso un oggetto, e nell'oggetto, ho racchiuso anch'io un evento.

Elaboro i dati con il metodo dell'iscrizione agli eventi, come la parte dell'annotazione delle immagini,

Perché l'evento a cui mi ero iscritto era un file lettura txt, e il mio file txt aveva 50.000 righe, il che ha fatto sì che il metodo dell'evento venga attivato 50.000 volte.

Poi, quando eseguii il programma, ho scoperto che la mia interfaccia era in uno stato di animazione sospesa, e sapevo che doveva esserci un problema.

All'inizio pensavo fosse la manipolazione dei controlli dell'interfaccia nel metodo a causare la morte finta.

Poi, passo dopo passo, si scoprì che aggiungendo dati al set, era già entrato in uno stato di animazione sospesa.

Perché??? Infine, ho scoperto su internet che l'evento è nel thread principale e, se il primo evento non viene elaborato, bloccherà l'esecuzione del prossimo evento,

In generale capivo cosa ordinavo, per dirla senza mezzi termini, 50.000 eventi hanno causato il blocco del programma, e poi sono entrato in uno stato di animazione sospesa.

Soluzione:

Per alcuni eventi semplici, che non porteranno all'esecuzione di un gran numero di metodi eventi, possono essere scritti direttamente nel metodo event.

Per un gran numero di metodi di eventi chiamati, spero che tu apra un thread per gestirlo, come: socket o httplistener, ecc. (la quantità di dati è piccola e non puoi vederla, una volta che la quantità di dati è grande, haha, morirà direttamente)




Precedente:C# genera codici email in massa
Prossimo:Analisi dei giocatori in cloud broadcast, analisi dell'interfaccia Thunderbolt e QQ whirlwind
Pubblicato su 22/09/2016 09:23:17 |
Qualcuno ha scritto molto bene, supporto
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com