静态variables在任何特定的线程初始化?

我正在做一些受这个问题启发的研究,我注意到几个提出的类似问题的解决scheme在静态variables的初始化过程中创build了一个互斥对象。 如果创build它的线程在应用程序的整个生命周期内保持有效状态,这种互斥体将只能按需要工作。

现在,似乎有一个合理的猜测,即静态variables是由进程主线程初始化的,也似乎是一个合理的猜测,即进程主线程只在主函数退出时(这大概是在程序员的控制下)退出。

但是,这些实际上是否由C#语言标准保证?

PS:我正在谈论Windows线程,而不是.NET线程。

在C#中,当第一次加载类时,静态变量由类加载器初始化。 这有什么线程第一次引用类的有趣的神器。

我们还注意到主线程不能保证是一个托管线程,所以主线程之后的任何库都不能保证能够识别它。 我编写了一个程序,在本地初始化之后没有主线程来证明可以完成。