У меня есть многопоточное приложение .Net C #, оно использует Direct3D 9/10 и XAudio2. (Доступ к Direct3D осуществляется только одним потоком, то же самое для XAudio2. Direct3D не проблема, поскольку ошибка проявляется в режиме DX9 или DX10 без каких-либо изменений в его поведении.)
Иногда (в некоторых областях эта проблема возникает случайным образом), это приложение довольно неожиданно падает. Даже если приложение запускается через визуальную студию с отладчиком, оно завершается сбоем без каких-либо исключений. (Он начинается с того, что "applicationname.svchost.exe не работает и т. Д. И т. Д. Хотите отладить?"
Нет способа выяснить, в чем причина аварии? Потому что у меня закончились идеи, отладчик не дает мне никакой информации вообще. Без исключения я даже не могу сделать трассировку стека или дамп. : P (Полагаю, это проблема синхронизации (хотя я и думал, что в этой области я выполняю только последовательную работу ...), но почему бы не запустить исключение?: |)
В областях, где возникает проблема, я выгружаю перезагрузку серии классов, связанных с романом (в последовательной основной теме, поэтому я сомневаюсь, что это может быть проблемой), и запускаю новую музыку через XAudio2. (Кстати, каковы соображения о многопоточности в XAudio2? Безопасно ли звонить из нескольких потоков?)
Спасибо за помощь.
P.S. К моему приложению прикреплено программное обеспечение, которое отслеживает все вызовы и сообщает, какой последний вызов перед сбоем?