Метод слишком долго выполняется

в чьём конструкторе?

Там можно все показать, а не только топ 5.

Ну и делить большие тормознутые функции на более мелкие.

Нету больших тормознутых функций. Они все довольно компактные и ничего долгого не делают.

Вот конкретный пример. На форме лежит массив UserControlов. На каждом есть кнопка. При щелчке по кнопке ЛКМ надо активировать этот UserControl (а другие сделать неактивными), при этом уведомить об активации всех нуждающихся, и показать вторую форму (и форму тоже уведомить об активации). При щелчке по любому элементу UserControlа любой кнопкой мыши - активировать UserControl (остальные сделать не активными) и уведомить всех нуждающихся (и вторую форму, если она создана).

Надо проект видеть.
Вообще такие вещи должны начинаться с диаграммы потоков данных. Уведомления через делегаты. Если не получается в голове все понять то возьмите бумагу и нарисуйте. Ничего в этом зазорного нету. Зато все станет понятно и времени уйдет меньше.

Ну это и ежу понятно, что через делегаты.

Почему? Я же выложил весь тормозящий код. Остальной код не тормозит.
А теперь, как профессионал, скажите, чему в этом небольшом куске кода можно тормозить? Тут (в этом коде) выполняется что-то тяжёлое?

А при чём тут логика работы, если тормозит один конкретный метод при чётко определённых условиях? А именно - если хотя-бы один раз показать вторую форму. Причём, обработчики Load и Shown у этой формы не назначены.
Вы точно уверены, что проблема именно в логике работы (или в постановке задачи), а не в чём-то ещё? :thinking: Вы считаете, что все проблемы могут быть только из-за неправильно написанного кода?

Профайлер показывает, что тормозит ListFilters?

Если да, то можно посмотреть тормозит ли что-то вызываемое оттуда. В меню по ПКМ можно включить показ не своих функций (наверно в настройках где-то есть опция, чтоб сразу).

Если нет, то видимо тормозит что-то другое из-за изменений общего состояния сделанных там.

А может быть такое, что просто винда заглючила? Например, DWM и/или что-то иже с ним? :thinking:

Уверен на 99%.

Вам же сказали посмотреть дерево вызовов. Зачем гадать то??

А ещё один % где? Какие ещё могут быть причины?

Неведомая фигня :spinningparrot:

Так а почему б сначала 99% не проверить?)

Ладно, ок, сдаюсь. Помогла перезагрузка компа.

Ну так а смысл ковыряться хз где, если причиной был затуп винды? :man_shrugging: Разве не стоит сначала отбросить самые простые варианты? Зачем ковырять стог сена, если иголки там всё-равно нет?

Я бы хотел посмотреть, как самый оптимизированный идеально написанный код вот так вот заглючил из-за ОС, а вы такой на 99% уверенный его переписываете.

Ну так глянуть профайлер это ж и есть простой вариант.

Если дело не в своем коде, то видимо показало бы тормоза в чужих функциях в конце дерева вызовов.

Это даже в теории невозможно.

Вот видите. Вы опять отрицаете факты. Мой код далёк от идеала, но настолько тормозить там, явно, нечему.

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

ну да ну да… это все корявая винда и необразованые разработчики дотнета. Уже слышали.

Я вас не понимаю :thinking: Почему вы продолжаете отрицать тот факт, что после перезагрузки винды всё само заработало без изменения кода?

Ну заработало и заработало.