Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 21695|Odpowiedź: 1

[Źródło] .net/c# Uważaj na zdarzenia, które obciążają Twój program

[Skopiuj link]
Opublikowano 21.09.2016 16:05:58 | | | |
Zdarzenia są ładowane i uruchamiane w głównym wątku, a jeśli pierwsze zdarzenie w głównym wątku nie jest ukończone, przechodzisz do drugiego zdarzenia, podobnie jak inne programy w głównym wątku, czekasz, aż poprzednie zakończy przetwarzanie, zanim przetworzysz kolejny lub inny program lub zdarzenie w głównym wątku.




Powyższe jest takie, że sam zatkałem obiekt, a w tym obiekcie sam zapakowałem zdarzenie.

Przetwarzam dane metodą subskrybowania zdarzeń, takich jak część dotycząca adnotacji obrazów,

Ponieważ zdarzenie, na które się zapisałem, było czytnym plikiem txt, a mój plik txt miał 50 000 linii, co powodowało, że metoda zdarzenia była wyzwalana 50 000 razy.

Gdy uruchomiłem program, zauważyłem, że mój interfejs jest w stanie zawieszonej animacji i wiedziałem, że musi być jakiś problem.

Początkowo myślałem, że to manipulacja sterowaniem interfejsu w tej metodzie powoduje fałszywą śmierć.

Następnie, krok po kroku, okazało się, że dodając dane do zestawu, wszedł on już w stan zawieszonej animacji.

Dlaczego??? W końcu dowiedziałem się z internetu, że zdarzenie znajduje się w głównym wątku, a jeśli pierwsze zdarzenie nie zostanie przetworzone, zablokuje wykonanie kolejnego zdarzenia,

Ogólnie rozumiałem, co poleciłem, mówiąc wprost, 50 000 zdarzeń spowodowało zablokowanie programu, a potem wszedłem w stan zawieszenia animacji.

Rozwiązanie:

Dla niektórych prostych zdarzeń, które nie prowadzą do wykonania dużej liczby metod zdarzeń, można zapisać bezpośrednio w metodzie zdarzenia.

Dla dużej liczby wywoływanych metod zdarzeń mam nadzieję, że otworzysz wątek, który się tym zajmie, na przykład socket czy httplistener itd. (ilość danych jest mała i jej nie widzisz, gdy ilość danych jest duża, haha, to od razu padnie)




Poprzedni:C# generuje kody adresów e-mail masowo
Następny:Analiza odtwarzaczy transmisji w chmurze, analiza interfejsów Thunderbolt i QQ whirlwind
Opublikowano 22.09.2016 09:23:17 |
Ktoś napisał bardzo dobrze, wsparcie
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com