Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 21695|Svare: 1

[Kilde] .net/c# Vær forsiktig med hendelser som drar ned programmet ditt

[Kopier lenke]
Publisert på 21.09.2016 16:05:58 | | | |
Hendelser lastes inn og kjøres på hovedtråden, og hvis den første hendelsen i hovedtråden ikke er ferdig, kommer du til den andre hendelsen, akkurat som andre programmer i hovedtråden, og venter til den forrige er ferdig før du behandler neste eller et annet program eller hendelse i hovedtråden.




Ovenstående er, jeg innkapslet et objekt selv, og i objektet innkapslet jeg en hendelse selv.

Jeg behandler data på en måte å abonnere på hendelser, som bildeannotasjonen,

Fordi hendelsen jeg abonnerte på var en lest txt-fil, og min txt-fil hadde 50 000 linjer, noe som gjorde at hendelsesmetoden ble utløst 50 000 ganger.

Da jeg kjørte programmet, oppdaget jeg at grensesnittet mitt var i en tilstand av suspendert animasjon, og jeg visste at det måtte være et problem der.

Jeg trodde først det var manipuleringen av UI-kontrollene på denne måten som forårsaket falsk død.

Deretter, steg for steg, ble det funnet at når man la til data i settet, hadde det allerede gått inn i en tilstand av suspendert animasjon.

hvorfor??? Til slutt fant jeg ut på internett at hendelsen er i hovedtråden, og hvis den første hendelsen ikke blir behandlet, vil den blokkere kjøringen av neste hendelse.

Jeg forsto stort sett det jeg bestilte, for å si det rett ut: 50 000 hendelser førte til at programmet ble blokkert, og så gikk jeg inn i en tilstand av suspendert animasjon.

Løsning:

For noen enkle hendelser, som ikke vil føre til utførelse av et stort antall hendelsesmetoder, kan skrives direkte inn i hendelsesmetoden.

For et stort antall hendelsesmetoder som kalles, håper jeg du åpner en tråd for å håndtere det, som for eksempel: socket eller httplistener, osv. (datamengden er liten og du kan ikke se den, når datamengden er stor, haha, vil den dø direkte)




Foregående:C# genererer e-postadressekoder i bulk
Neste:Analyse av skykringkastingsspillere, Thunderbolt og QQ virvelvindgrensesnittanalyse
Publisert på 22.09.2016 09:23:17 |
Noen postet veldig bra, support
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com