Мы создаем приложение на основе WinForms (с использованием .NET 3.5)
Недавно я столкнулся с тем, что при выполнении одного из основных рабочих процессов нашего приложения приложение перестает отвечать на запросы в течение нескольких секунд, если не удается правильно отобразить пользовательский интерфейс (показывает сообщение «Программа не отвечает»).
Мы уменьшили проблему до предполагаемой строки кода, которая добавляет всплывающую подсказку к элементу управления меткой:
ToolTip tooltip = new ToolTip();
tooltip.SetTooltip(label, "something");
Последние 2 дня я потратил на выяснение того, что в этом коде могло бы кодировать любые проблемы с потоком пользовательского интерфейса, но не смог этого сделать.
У меня вопрос: возможно ли использовать профилировщик производительности для сбора информации о таком коде? Обратите внимание, что класс ToolTip принадлежит WinForms, и у меня нет исходного кода для него.
Удаление этих строк, кажется, полностью решает проблему.
Я хотел бы сократить усилия по отладке в будущем, поскольку эта проблема может проявиться в других местах нашей кодовой базы.
EDIT:
Единственная похожая проблема, о которой я узнал, была следующая: WinForm ToolTip.SetToolTip зависает в моем приложении: (