Таким образом, для проекта я должен использовать общеизвестно склонную к ошибкам GDAL (http://www.gdal.org/) библиотека, написанная на неуправляемом C ++ (на самом деле я использую привязки C #). Иногда возникает проблема с библиотекой бомб и сбой процесса vhost32.exe. Я ничего не могу с этим поделать. Пустые блоки catch не принесут мне пользы, исключение AppDomain.CurrentDomain.UnhandledException даже не поднято.
Исключение составляет
Необработанное исключение в 0x77B9AA3C (ntdll.dll) в RASTER.exe: 0xC0000374: повреждена куча (параметры: 0x77BAFE38).
Очевидно, что это исключение невозможно исправить, и Windows закрывает мой процесс. Все идет нормально. Теперь проблема в том, куда мне идти отсюда? Я не хочу, чтобы весь процесс был уничтожен только из-за сбоя вызова библиотеки с ошибками. Какие у меня варианты? Создание второго процесса и использование именованных каналов для межпроцессного взаимодействия? Это все равно будет означать, что Другой сбой процесса при появлении всплывающего окна «Windows проверяет решение проблемы …». Нехорошо. К сожалению, для нужной мне функциональности альтернативы этой библиотеке нет.
<gcConcurrent enabled="false" />
<legacyCorruptedStateExceptionsPolicy enabled="true" />
в моем App.config ничего не меняется. Ни один не украшает метод, который бомбит с [HandleProcessCorruptedStateExceptions]
приписывать.
Что я могу сделать?
Задача ещё не решена.
Других решений пока нет …