У меня повреждена куча в моей многопоточной управляемой программе.Делая некоторые тесты, я обнаружил, что повреждение происходит только тогда, когда фоновые потоки активны в программе (они переключаемы).Потоки используют некоторые сторонние компоненты.
После изучения кода потоков и сторонних компонентов (с .NET Reflector) я обнаружил, что все они управляются, то есть no"unsafe"или "DllImportAttribute" или "P / Invoke".Кажется, что чисто управляемый код вызывает повреждение кучи, возможно ли это?
ОБНОВЛЕНИЕ
Помимо использования класса Marshal, возможно ли повредитькуча с неправильно синхронизированными потоками ?Пример был бы очень признателен.