Вот конкретный пример. На форме лежит массив UserControlов. На каждом есть кнопка. При щелчке по кнопке ЛКМ надо активировать этот UserControl (а другие сделать неактивными), при этом уведомить об активации всех нуждающихся, и показать вторую форму (и форму тоже уведомить об активации). При щелчке по любому элементу UserControlа любой кнопкой мыши - активировать UserControl (остальные сделать не активными) и уведомить всех нуждающихся (и вторую форму, если она создана).
Надо проект видеть.
Вообще такие вещи должны начинаться с диаграммы потоков данных. Уведомления через делегаты. Если не получается в голове все понять то возьмите бумагу и нарисуйте. Ничего в этом зазорного нету. Зато все станет понятно и времени уйдет меньше.
Почему? Я же выложил весь тормозящий код. Остальной код не тормозит.
А теперь, как профессионал, скажите, чему в этом небольшом куске кода можно тормозить? Тут (в этом коде) выполняется что-то тяжёлое?
А при чём тут логика работы, если тормозит один конкретный метод при чётко определённых условиях? А именно - если хотя-бы один раз показать вторую форму. Причём, обработчики Load и Shown у этой формы не назначены.
Вы точно уверены, что проблема именно в логике работы (или в постановке задачи), а не в чём-то ещё? Вы считаете, что все проблемы могут быть только из-за неправильно написанного кода?
Если да, то можно посмотреть тормозит ли что-то вызываемое оттуда. В меню по ПКМ можно включить показ не своих функций (наверно в настройках где-то есть опция, чтоб сразу).
Ну так а смысл ковыряться хз где, если причиной был затуп винды? Разве не стоит сначала отбросить самые простые варианты? Зачем ковырять стог сена, если иголки там всё-равно нет?
Я бы хотел посмотреть, как самый оптимизированный идеально написанный код вот так вот заглючил из-за ОС, а вы такой на 99% уверенный его переписываете.