我有一个混合模式可执行文件,我注意到我本机全局变量的构造函数在主线程中被调用,但是在其他线程中调用了destructor。
线程的名称是“线程:: InterMediateThreadProc”。

这样做的原因是什么?这是什么“线程:: IntermedeateThreadProc”线程?

谢谢。

有帮助吗?

解决方案

线程:: InterMediateThreadProc()是CLR中的一个小助手函数,用作CLR启动的任何线程的线程启动函数。在SSCLI20源中找到它,src vm threads.cpp

在另一个线程上看到此运行是可以的。清理代码在卸载时运行。它的CLR逻辑非常复杂,但是当AppDomain最后一次运行最终螺纹以清理堆时,它看起来会运行。您可以假设所有托管对象都死了,并且没有其他线程运行。当心您的代码受到两个第二个最终线程超时的约束。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top