Убедитесь, что вы упаковываете свой код с помощью try..catch.Затем установите точку останова в улове.(@Paolo делает хорошее замечание, убедитесь, что try..catch находится в потоке, который выполняет эту работу.)
Кроме того, вы можете попытаться настроить Visual Studio на все исключения.«Отладка» / «Исключения» / Установите соответствующие флажки «Брошенные».
Также попробуйте проверить программу просмотра событий на наличие некоторых подсказок.
Наконец, вы также можете выполнить Debug.WriteLine или Trace.WriteLine в определенных местах (особенно если работает в системе без Visual Studio) и выводить монитор с помощью Sysinternals DebugView
Примечание. Убедитесь, что создание кода выполнено правильно (т. Е. Добавьте ведение журнала)., программировать в обороне и т. д.) после / во время поиска источника проблемы.