Ive получил приложение C# 2.0, которое запускает средство просмотра Crystal Reports и отображает некоторые отчеты. Если я запустил это в режиме Debug или Release OUTSIDE визуальной студии, он работает нормально. Если я отлажу это через Visual Studio 2005, отчет появится, но через минуту или две позже VS выйдет из игры в ContextSwitchDeadlock, также сообщив, что никакие символы не были загружены для любого стека стека вызовов, поэтому я не могу его отлаживать ,Crystal Reports crashing visual studio
Возможно, это связано с тем, что отчет запускается в другом потоке. Причины этого немного запутаны, но я попытаюсь объяснить в случае, если это важно:
У нас есть длительный процесс, который работает на фоне потока. Когда процесс выполняется, он запускает отчеты. Если он (фоновый поток) просто вызывает Show (non-modal) в формах просмотра отчетов, он немедленно прекратит и уничтожит все эти формы отчетов. Таким образом, вместо этого он запускает один дочерний поток для каждого отчета и вызывает его с помощью ShowDialog (модальный). Таким образом, формы все кажутся немодальными друг к другу, но когда пользователь закрывает LAST, поток фонового процесса теперь не имеет дочерних потоков, и он может завершаться.
Означает ли это, имеет ли кто-нибудь представление, почему я получаю ContextSwitchDeadlock MDA внутри VS, но исключение не возникает, когда код работает автономно?