При запуске наших модульных тестов в режиме отладки в определенный момент отладчик Visual Studio прерывается, чтобы показать реентерабельный MDA. В связанной статье объясняется, что это происходит, когда низкоуровневая точка расширения операционной системы, такая как векторный обработчик исключений, обращается обратно к коду управляемого приложения.
По-видимому, это может привести к повреждению кучи или другим серьезным проблемам, поэтому я определенно хотел бы это исправить.
Я просматриваю stacktrace в точка, где отображается это предупреждение, но мне трудно понять, какая «точка расширения низкоуровневой операционной системы» здесь задействована. Я не вижу никаких неуправляемых/управляемых переходов, кроме одного, вызванного mstest и вызовом геттера System.Windows.Forms.Cursors.VSplit
. Кроме того, простого вызова этого геттера из модульного теста недостаточно для срабатывания предупреждения.
Что я здесь сделал не так и как это исправить?