У меня есть класс в c # (.net 3.5 cp, vs2010), который выполняет сложные вычисления, которые обычно занимают много времени.Через минуту выдается исключение, что ContextSwitchDeadlock был обнаружен.Исключение локализовано, для моего не английского языка, поэтому я не могу скопировать вставить, но смысл следующий: following Модуль CLR не мог перейти из контекста COM ... в контекст COM ... в течение 60 секунд.Подпроцессы, которые владеют целевым контекстом / квартирой, вероятно, не ожидают перекачки или обрабатывают очень длительную операцию без перекачки системных сообщений Windows.
По сути, похоже, что мое приложение вычисляет и долго не отвечает на окна, а Visual Studio отключает его и сообщает о вероятном тупике.
Я пытался провести какое-то исследование и нашелдва решения:
Отключить некоторые опции в отладчике Visual Studio для обнаружения взаимоблокировок.Не работает для меня, потому что это работает только для целей отладки.
Вызовите некоторый метод DoEvents, но это было для оконных форм, а не WPF, и я использую WPF.
Было также предложено создать отдельную тему, но я совершенно не знаком с потоками и не знаю, что мне делать.Любые предложения, пожалуйста?