saveFileDialog Долгое ожидание подтверждения "Okay"
Я пишу в Visual Studio 2008 с использованием C# (если это имеет значение), и у меня есть следующий фрагмент кода:
if(saveFileDialog1.ShowDialog() == DialogResult.OK)
{
//Write Stuff to File Here
}
Какое-то время я думал, что мой код, который написал файл, работает вечно, однако после отладки кажется, что потребуется вечность (от 5 до 10 секунд) только для перехода между оператором "if" и первой скобкой первого кода в "if",
Что-то я делаю не так? Есть ли разница между созданием объекта saveFileDialog в пользовательском интерфейсе и созданием его на лету (через код)? Будет ли это иметь значение, если нет "еще" заявление?
Любые мысли или идеи будут с благодарностью!
1 ответ
Это не является необычным, на многих машинах тонна DLL загружаются в ваш процесс, когда вы используете этот диалог. Вы можете увидеть, как они загружаются, используя Project + Properties, вкладку Debug, отметив флажок "Включить отладку неуправляемого кода". Окно "Вывод" показывает трассировку каждой DLL, попадающей в вашу программу.
Это расширения оболочки, настройки для Explorer. Используемое вами диалоговое окно является оболочкой, вы наверняка узнаете сходство с обычными представлениями Проводника. Такие вещи, как значки и контекстные меню, ведут себя одинаково. Наличие множества расширений оболочки является обычным явлением на машинах разработчика, в большей степени, чем на пользовательских машинах. Их много, предлагая такие удобства, как интеграция любого инструмента, который вы хотели бы использовать с самим проводником.
Отладка проблемы не так проста, у вас не будет фактического исходного кода для этих расширений. Вы можете получить подсказку о нарушителе тревоги из трассировки в окне вывода. Если после одной конкретной DLL есть длительная пауза, то есть вероятность, что эта DLL является источником проблемы. Ничего толкового, хотя
Лучше всего использовать утилиту SysInternals AutoRuns. Он показывает, какие именно расширения оболочки установлены, и позволяет отключить их, просто установив флажок. Начните отключать все, что не имеет авторских прав Microsoft, и вещи, без которых вы могли бы жить. Выход из системы + вход в систему, чтобы изменения вступили в силу