Notikumi tiek ielādēti un palaisti galvenajā pavedienā, un, ja pirmais notikums galvenajā pavedienā nav pabeigts, jūs nonākat pie otrā notikuma, tāpat kā citas programmas galvenajā pavedienā, pagaidiet, līdz iepriekšējā pabeidz apstrādi, pirms apstrādājat nākamo vai citu programmu vai notikumu galvenajā pavedienā.
Iepriekš minētais ir tāds, ka es pats iekapsulēju objektu, un objektā es pats iekapsulēju notikumu.
Es apstrādāju datus notikumu abonēšanas metodē, piemēram, attēla anotācijas daļā,
Tā kā notikums, kuru abonēju, bija lasīts txt fails, un manam txt failam bija 50 000 rindiņu, kā rezultātā notikuma metode tika aktivizēta 50 000 reižu.
Tad, kad es palaidu programmu, es atklāju, ka mana saskarne ir apturēta animācija, un es zināju, ka tur ir problēma.
Sākotnēji es domāju, ka tā bija manipulācija ar lietotāja interfeisa vadīklām metodē, kas izraisīja viltus nāvi.
Tad soli pa solim tika konstatēts, ka, pievienojot datus komplektam, tas jau bija nonācis apturētas animācijas stāvoklī.
kāpēc??? Visbeidzot, es no interneta uzzināju, ka notikums atrodas galvenajā pavedienā, un, ja pirmais notikums netiek apstrādāts, tas bloķēs nākamā notikuma izpildi,
Es kopumā sapratu, ko es pasūtīju, atklāti sakot, 50 000 notikumu izraisīja programmas bloķēšanu, un tad es nonācu apturētas animācijas stāvoklī.
Šķīdums:
Dažiem vienkāršiem notikumiem, kas nenovedīs pie liela skaita notikumu metožu izpildes, var ierakstīt tieši notikuma metodē.
Lielam skaitam notikumu metožu, es ceru, ka jūs atvērsiet pavedienu, lai to risinātu, piemēram: ligzda vai httplistener utt. (datu apjoms ir mazs, un jūs to nevarat redzēt, tiklīdz datu apjoms ir liels, haha, tas mirs tieši)
|