Управление событиями EventHandlers - PullRequest
0 голосов
/ 21 марта 2011

У меня есть класс, который, кажется, рекурсивно добавляет EventHandler к событию. Я посмотрел на код, но в нем нет AddHandler, и есть только один метод с предложением Handles.

В профилировщике памяти он показывает, что обработчик событий вызывает обработчик событий, который вызывает обработчик событий и т. Д., Для довольно большого количества шагов.

С чем это может быть связано? Что может быть хорошим способом приблизиться к ситуации, чтобы исправить ее?

P.S. Я новичок во всем этом профилировании памяти, поэтому относитесь ко мне с легкостью;).

1 Ответ

1 голос
/ 21 марта 2011

Звучит так, будто у вас есть чётный чей-то обработчик, который снова запускает событие. Самый простой способ сказать это - установить точку останова в обработчике и посмотреть, не перезапустится ли он неожиданно. Если это так, вы можете посмотреть на трассировку стека и выяснить, что вы делаете, чтобы снова вызвать событие.

Если на это событие может повлиять пауза (например, Paint), вы также можете записать в Console в обработчике и распечатать Environment.StackTrace, чтобы получить снимок без приостановки выполнения.

...