У меня есть куча коррупции в моей многопоточной управляемой программе. Выполняя некоторые тесты, я обнаружил, что коррупция происходит только тогда, когда фоновые потоки активны в программе (они переключаются). В потоках используются сторонние компоненты.
После изучения кода потоков и сторонних компонентов (с .NET Reflector) я обнаружил, что все они управляются, то есть нет "небезопасно" или "DllImportAttribute" или "P/Invoke", Кажется, что чисто управляемый код вызывает повреждение кучи, возможно ли это?
UPDATE
Помимо использования класса маршала, можно ли повредить кучу, когда потоки не синхронизированы правильно? Пример будет очень оценен.