Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 21695|Отговор: 1

[Източник] .net/c# Внимавай за събития, които влияят на програмата ти надолу

[Копирай линк]
Публикувано в 21.09.2016 г. 16:05:58 ч. | | | |
Събитията се зареждат и изпълняват върху основната нишка, и ако първото събитие в основната нишка не е завършено, преминавате към второто събитие, както и други програми в основната нишка, изчаквате предишната да приключи обработката, преди да обработите следващата или друга програма или събитие в основната нишка.




Горното е, че аз сам капсулирах обект, а в обекта сам обхванах събитие.

Обработвам данни по метода на абониране на събития, като например частта с анотация на изображението,

Защото събитието, за което се абонирах, беше read txt файл, а моят txt файл имаше 50 000 реда, което предизвикваше задействане на метода за събитие 50 000 пъти.

После, когато стартирах програмата, установих, че интерфейсът ми е в състояние на суспендирана анимация и знаех, че там трябва да има проблем.

Първоначално мислех, че манипулацията на контролите на интерфейса е причината за фалшивата смърт.

След това, стъпка по стъпка, се установи, че при добавяне на данни към набора вече е влязъл в състояние на суспендирана анимация.

Защо??? Накрая разбрах от интернет, че събитието е в основната нишка и ако първото събитие не бъде обработено, то ще блокира изпълнението на следващото събитие,

Обикновено разбирах какво съм поръчал, да го кажа направо, 50 000 събития блокираха програмата, след което влязох в състояние на суспендирана анимация.

Решение:

За някои прости събития, които няма да доведат до изпълнение на голям брой събитийни методи, могат да бъдат записани директно в метода на събитието.

За голям брой методи за събития, надявам се да отвориш нишка, като: socket или httplistener и т.н. (количество данни е малко и не можеш да го видиш, щом е голямо, хаха, те ще умрат директно)




Предишен:C# генерира кодове за имейл адреси в масово
Следващ:Анализ на плейърите в облака, анализ на интерфейсите на Thunderbolt и QQ whirlwind
Публикувано в 22.09.2016 г. 9:23:17 ч. |
Някой публикува много добре, подкрепа
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com