在调试模式下运行我们的单元测试时,Visual Studio 调试器会在某个点中断以显示可重入 MDA。链接的文章解释说,当低级操作系统扩展点(例如向量异常处理程序)回调托管应用程序代码时,就会发生这种情况。
显然这会导致堆损坏或其他严重问题,所以我肯定想修复它。
我正在查看显示此警告的位置的堆栈跟踪,但我无法确定此处涉及哪个“低级操作系统扩展点”。除了一次由 mstest 和调用System.Windows.Forms.Cursors.VSplit
getter 引起的转换之外,我没有看到任何非托管/托管转换。此外,仅从单元测试中调用该 getter 似乎不足以触发警告。
我在这里做错了什么,我该如何解决?