Tapahtumat ladataan ja suoritetaan pääsäikeessä, ja jos ensimmäinen tapahtuma pääsäikeessä ei ole valmis, tulet toiseen tapahtumaan, kuten muutkin ohjelmat pääsäikeessä, odotat edellisen käsittelyn valmistumista ennen seuraavan tai toisen ohjelman tai tapahtuman käsittelyä pääsäikeessä.
Yllä oleva on, että kapseloin esineen itse, ja esineeseen kapseloin tapahtuman itse.
Käsittelen dataa tapahtumien tilaamismenetelmällä, kuten kuvamerkinnässä,
Koska tilaamani tapahtuma oli lukutxt-tiedosto, ja txt-tiedostossani oli 50 000 riviä, mikä aiheutti tapahtumametodin käynnistymisen 50 000 kertaa.
Kun käynnistin ohjelman, huomasin, että käyttöliittymäni oli horroksessa animaatiossa, ja tiesin, että siinä täytyi olla jokin ongelma.
Aluksi luulin, että menetelmän käyttöliittymäkontrollien manipulointi aiheutti feikkikuoleman.
Sitten askel askeleelta havaittiin, että kun dataa lisättiin joukkoon, se oli jo siirtynyt keskeytetyn animaation tilaan.
Miksi??? Lopulta sain internetistä selville, että tapahtuma on pääketjussa, ja jos ensimmäistä tapahtumaa ei käsitellä, se estää seuraavan tapahtuman suorituksen,
Ymmärsin yleisesti mitä käskin, suoraan sanottuna, 50 000 tapahtumaa aiheutti ohjelman eston, ja sitten siirryin keskeytetyn animaation tilaan.
Ratkaisu:
Joidenkin yksinkertaisten tapahtumien kohdalla, jotka eivät johda suuren määrän tapahtumametodien suorittamiseen, voidaan kirjoittaa suoraan tapahtumametodiin.
Monille tapahtumametodeille toivon, että avaat ketjun niiden käsittelemiseksi, kuten: socket tai httplistener jne. (datamäärä on pieni eikä sitä näe, kun datamäärä on suuri, haha, se kuolee suoraan)
|