全局变量未在主线程中破坏?
-
29-09-2019 - |
题
我有一个混合模式可执行文件,我注意到我本机全局变量的构造函数在主线程中被调用,但是在其他线程中调用了destructor。
线程的名称是“线程:: InterMediateThreadProc”。
这样做的原因是什么?这是什么“线程:: IntermedeateThreadProc”线程?
谢谢。
解决方案
线程:: InterMediateThreadProc()是CLR中的一个小助手函数,用作CLR启动的任何线程的线程启动函数。在SSCLI20源中找到它,src vm threads.cpp
在另一个线程上看到此运行是可以的。清理代码在卸载时运行。它的CLR逻辑非常复杂,但是当AppDomain最后一次运行最终螺纹以清理堆时,它看起来会运行。您可以假设所有托管对象都死了,并且没有其他线程运行。当心您的代码受到两个第二个最终线程超时的约束。
不隶属于 StackOverflow