Доброго всем времени суток.
Заранее прошу прощения, если эта тема где-то есть (я честно искал, но не нашел) или тема вопроса на столько очевидна, что в приличном обществе о таком не спрашивают (я недавно в разработке, некоторые вопросы ещё ставят меня в тупик).
Есть программа, которая обрабатывает большое количество примитивов, при запуске в режиме отладки, через минуту после старта получаю ошибку с таким текстом:
"Помощник по отладке управляемого кода "ContextSwitchDeadlock" : "CLR не удалось перейти из COM-контекста 0x75920408 в COM-контекст 0x759201b8 за 60 секунд. Наиболее вероятно, что поток, владеющий контекстом/апартаментом назначения, находится в режиме ожидания или выполнения очень длительной операции без прокачки сообщений Windows. Обычно эта ситуация отрицательно влияет на производительность и даже может привести к зависанию приложения или чрезмерному расходованию памяти. Чтобы избежать этой проблемы, все потоки однопоточного апартамента (STA) должны использовать примитивы ожидания для прокачки (например, CoWaitForMultipleHandles) и периодически прокачивать сообщения во время длительных операций."
На просторах интернета прочитал что это из-за того что выполняется большой объем вычислений, что не дает доступа к интерфейсу программы (и это действительно так), и если в коде действительно предусмотрен большой объем вычислений, то нужно просто выключить это оповещение.
После выключения этого оповещения программа работает как от неё ожидается, но я понятия не имею к чему может привести игнорирование этого оповещения. Может стоит количество обрабатываемых объектов дозировать, что бы они обрабатывались порционно или это и правда можно игнорировать?
Прошу совета у более опытных разработчиков, что делать в таких ситуациях