Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 21695|Odgovoriti: 1

[Vir] .net/c# Bodite pozorni na dogodke, ki vlečejo vaš program navzdol

[Kopiraj povezavo]
Objavljeno na 21. 09. 2016 16:05:58 | | | |
Dogodki se naložijo in zaženejo v glavni niti, in če prvi dogodek v glavni niti ni končan, pridete do drugega dogodka, tako kot drugi programi v glavni niti, počakate, da se prejšnji dokonča obdelava, preden obdelate naslednji ali drug program ali dogodek v glavni niti.




Zgoraj navedeno je, da sem sam zajel objekt, in v tem predmetu sem sam zajel dogodek.

Podatke obdelujem z metodo naročnine na dogodke, kot je del z označevanjem slik,

Ker je bil dogodek, na katerega sem se naročil, datoteka za branje txt, moja txt datoteka pa je imela 50.000 vrstic, zaradi česar se je metoda dogodka sprožila 50.000-krat.

Ko sem zagnal program, sem ugotovil, da je moj vmesnik v stanju suspendirane animacije in vedel sem, da mora biti tu težava.

Sprva sem mislil, da je manipulacija uporabniških kontrol v metodi povzročila lažno smrt.

Nato je bilo korak za korakom ugotovljeno, da je ob dodajanju podatkov v zbirko že vstopil v stanje suspendirane animacije.

zakaj??? Nazadnje sem na internetu izvedel, da je dogodek v glavni niti, in če prvi dogodek ni obdelan, bo blokiran začetek naslednjega dogodka,

Na splošno sem razumel, kaj sem naročil, da povem naravnost: 50.000 dogodkov je povzročilo blokado programa, nato pa sem vstopil v stanje zamrznjene animacije.

Rešitev:

Za nekatere preproste dogodke, ki ne vodijo do izvajanja velikega števila metod dogodkov, jih je mogoče neposredno zapisati v metodo dogodkov.

Za veliko število klicanih metod dogodkov upam, da boš odprl nit, ki se bo ukvarjala s tem, kot so: socket ali httplistener itd. (količina podatkov je majhna in jih ne vidiš, ko je količina podatkov večja, haha, bodo takoj ugasnili)




Prejšnji:C# generira kode e-poštnih naslovov v množičnem obsegu
Naslednji:Analiza predvajalnikov v oblaku, analiza vmesnikov Thunderbolt in QQ whirlwind
Objavljeno na 22. 09. 2016 09:23:17 |
Nekdo je zelo dobro objavil, podpora
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com