Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 21695|Odpověď: 1

[Zdroj] .net/c# Dávejte pozor na události, které snižují váš program

[Kopírovat odkaz]
Zveřejněno 21.09.2016 16:05:58 | | | |
Události se načítají a spustí v hlavním vlákně, a pokud první událost v hlavním vlákně není dokončena, přicházíte k druhé události, stejně jako ostatní programy v hlavním vlákně, čekáte, až předchozí dokončí zpracování, než zpracujete další nebo jiný program či událost v hlavním vlákně.




Výše uvedené je, že jsem objekt zachytil sám a v tom objektu jsem zachytil událost.

Data zpracovávám metodou odběru událostí, například část s anotací obrázků,

Protože událost, na kterou jsem se přihlásil, byla čtený txt soubor a můj txt soubor měl 50 000 řádků, což způsobilo, že metoda události byla spuštěna 50 000krát.

Když jsem pak program spustil, zjistil jsem, že mé rozhraní je ve stavu pozastavené animace a věděl jsem, že tam musí být nějaký problém.

Nejdřív jsem si myslel, že je to manipulace s ovládáním uživatelského rozhraní v této metodě, která způsobuje falešnou smrt.

Postupně se pak zjistilo, že při přidávání dat do sady už vstoupil do stavu pozastavené animace.

Proč??? Nakonec jsem zjistil z internetu, že událost je v hlavním vlákně, a pokud první událost není zpracována, zablokuje spuštění další události,

Obecně jsem chápal, co jsem nařídil, abych to řekl na rovinu, 50 000 událostí způsobilo blokaci programu a pak jsem vstoupil do stavu pozastavené animace.

Řešení:

Některé jednoduché události, které nevedou k provedení velkého počtu metod událostí, lze zapsat přímo do metody událostí.

U velkého počtu volaných metod událostí doufám, že otevřete vlákno, které to řeší, například: socket nebo httplistener atd. (množství dat je malé a nevidíte je, jakmile je množství dat velké, haha, hned to zemře)




Předchozí:C# generuje kódy e-mailových adres hromadně
Další:Analýza cloudového vysílacího přehrávače, analýza rozhraní Thunderbolt a QQ whirlwind
Zveřejněno 22.09.2016 9:23:17 |
Někdo to přispěl velmi dobře, podpora
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com