Az események betöltődnek és futnak a fő szálon, és ha az első esemény nem fejeződött be, akkor a második eseményre jutsz, akárcsak más programok a fő szálban, várod, amíg az előző befejezi a feldolgozást, mielőtt a következő vagy más programot vagy eseményt feldolgoznánk a fő szálban.
A fentiek szerint magam kapszuláltam be egy tárgyat, és a tárgyban én magam is kapszuláltam egy eseményt.
Az adatokat az eseményekhez való feliratkozás módszerében dolgozom fel, például a kép annotációs részét,
Mert az esemény, amire előfizettem, egy olvasási txt fájl volt, és a txt fájlomban 50 000 sor volt, ami miatt az esemény módszer 50 000-szer aktiválódott.
Amikor elindítottam a programot, azt vettem észre, hogy a felületem felfüggesztett animációban van, és tudtam, hogy valami probléma van ott.
Először azt hittem, hogy a kezelőfelület irányításának manipulálása okozta a hamis halált.
Ezután lépésről lépésre megállapították, hogy amikor adatokat adtak hozzá a halmazhoz, már felfüggesztett animációs állapotba került.
miért??? Végül az internetről megtudtam, hogy az esemény a fő szálon van, és ha az első esemény nem kerül feldolgozásra, blokkolja a következő esemény végrehajtását,
Általában megértettem, mit rendeltem, hogy őszintén szólva: 50 000 esemény miatt a program blokkolásra került, majd felfüggesztett animációs állapotba kerültem.
Megoldás:
Néhány egyszerű esemény esetén, amelyek nem vezetnek sok esemény végrehajtásához, közvetlenül az esemény metódusba írhatók.
Sok esemény metódusnál remélem, hogy megnyitod a szálat a kezelésére, például: socket vagy httplistener stb. (az adatmennyiség kicsi, és nem látod, ha nagy az adatmennyiség, haha, az azonnal meghal)
|