В большинстве случаев OpenFileDialog отображается без проблем, но в редких случаях, показывая, что приложение вызывает зависание на неопределенный срок до завершения процесса.
OpenFileDialog определяется следующим образом:
var dialog = new OpenFileDialog
{
ValidateNames = false,
CheckFileExists = false,
CheckPathExists = true,
FileName = "This Folder",
};
if (dialog.ShowDialog() == DialogResult.OK)
{
//logic here
}
Ответы на похожие вопросы позволяют предположить, что проблема может быть связана с библиотеками DLL, которые использует мое приложение.
Возможны соответствующие отладочные данные успешного запуска:
Всякий раз, когдаЗапущена программа:
...
'Program Name.exe' (Win32): Loaded 'C:\Windows\SysWOW64\iertutil.dll'.
'Program Name.exe' (Win32): Loaded 'C:\Windows\SysWOW64\propsys.dll'.
Exception thrown at 0x74EC3572 in Program Name.exe: Microsoft C++ exception: EEFileLoadException at memory location 0x00B3D034.
Exception thrown at 0x74EC3572 in Program Name.exe: Microsoft C++ exception: [rethrow] at memory location 0x00000000.
Exception thrown at 0x74EC3572 in Program Name.exe: Microsoft C++ exception: [rethrow] at memory location 0x00000000.
'Program Name.exe' (CLR v4.0.30319: Program Name.exe): Loaded 'Microsoft.GeneratedCode'.
'Program Name.exe' (Win32): Loaded 'C:\Windows\assembly\NativeImages_v4.0.30319_32\Microsoft.V9921e851#\10e86f631668518a182dfda3901d1848\Microsoft.VisualBasic.ni.dll'.
...
Первый раз, когда OpenFileDialog показывается при запуске программы:
...
'Program Name.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sxs.dll'.
mincore\com\oleaut32\dispatch\ups.cpp(2125)\OLEAUT32.dll!77444221: (caller: 77444318) ReturnHr(1) tid(7cb0) 8002801D Library not registered.
'Program Name.exe' (Win32): Loaded 'C:\Windows\SysWOW64\StructuredQuery.dll'.
...
'Program Name.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcp140.dll'.
'Program Name.exe' (Win32): Loaded 'C:\Windows\SysWOW64\vcruntime140.dll'.
Exception thrown at 0x74EC3572 in Program Name.exe: Microsoft C++ exception: Mso::RegistryException at memory location 0x0B15C968.
Exception thrown at 0x74EC3572 in Program Name.exe: Microsoft C++ exception: [rethrow] at memory location 0x00000000.
'Program Name.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msi.dll'.
...
Поскольку открытие OpenFileDialog вызывает только редкое зависание приложения, у меня нетлюбые выходные данные отладки для такого запуска.
Ни одно из вышеупомянутых исключений не присутствует, когда я запускаю приложение в его режиме CLI.
Я пытался исследовать вышеупомянутые сообщения об исключениях, но это непривел меня к решению.
Знаете ли вы, что может быть причиной этой проблемы?
Есть ли у вас какие-либо предложения поКак я могу продолжить отладку проблемы?