0

我有一个混合模式的可执行文件,我注意到我的本地全局变量的构造函数在主线程中被调用,而析构函数在其他线程中被调用。
线程的名称是'Thread::intermediateThreadProc'。

这是什么原因?这个'Thread::intermediateThreadProc'线程是什么?

谢谢。

4

1 回答 1

4

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

在另一个线程上看到这个运行是意料之中的。卸载 appdomain 时运行清理代码。它的 CLR 逻辑非常复杂,但看起来它会在 appdomain 最后一次运行终结器线程以清理堆时运行。您可以假设所有托管对象都已死,并且没有其他线程在运行。请注意,您的代码会受到两秒终结器线程超时的影响。

于 2010-08-18T11:38:10.893 回答