Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 21695|Odpoveď: 1

[Zdroj] .net/c# Dávajte si pozor na udalosti, ktoré by znižovali váš program

[Kopírovať odkaz]
Zverejnené 21. 9. 2016 16:05:58 | | | |
Udalosti sa načítavajú a spúšťajú v hlavnom vlákne, a ak prvá udalosť v hlavnom vlákne nie je dokončená, pristúpite k druhej udalosti, rovnako ako ostatné programy v hlavnom vlákne, čakáte, kým predchádzajúca dokončí spracovanie, než spracujete ďalšiu alebo iný program či udalosť v hlavnom vlákne.




Vyššie uvedené je, že som objekt zapuzdril sám a do objektu som zapuzdril udalosť sám.

Spracovávam dáta metódou odberu udalostí, ako je časť s anotáciou obrázkov,

Pretože udalosť, na ktorú som sa prihlásil, bola čítaný txt súbor a môj txt súbor mal 50 000 riadkov, čo spôsobilo, že metóda udalostí bola spustená 50 000-krát.

Keď som potom spustil program, zistil som, že moje rozhranie je v stave pozastavenej animácie a vedel som, že tam musí byť nejaký problém.

Najprv som si myslel, že manipulácia s ovládaním UI spôsobuje falošnú smrť.

Potom, krok za krokom, sa zistilo, že pri pridávaní dát do sady už vstúpil do stavu pozastavenej animácie.

prečo??? Nakoniec som zistil z internetu, že udalosť je v hlavnom vlákne, a ak prvá udalosť nie je spracovaná, zablokuje vykonanie ďalšej udalosti,

Vo všeobecnosti som rozumel tomu, čo som prikázal, aby som to povedal na rovinu, 50 000 udalostí spôsobilo blokovanie programu, a potom som vstúpil do stavu pozastavenej animácie.

Riešenie:

Pre niektoré jednoduché udalosti, ktoré nevedú k vykonaniu veľkého počtu metód udalostí, môžu byť zapísané priamo do metódy udalostí.

Pri veľkom množstve metód udalostí, ktoré sa volajú, dúfam, že otvoríte vlákno, ktoré to rieši, napríklad: socket alebo httplistener, atď. (množstvo dát je malé a nevidíte ich, keď je množstvo dát veľké, haha, okamžite to zomrie)




Predchádzajúci:C# generuje e-mailové kódy hromadne
Budúci:Analýza cloudového vysielacieho prehrávača, analýza rozhraní Thunderbolt a QQ whirlwind
Zverejnené 22. 9. 2016 9:23:17 |
Niekto prispel veľmi dobre, podpora
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com