关于单元初始化我可以假设什么?

Thi*_*ien 2 delphi

文档描述了在程序启动时发生的单元初始化,但在(自动加载)BPL 的情况下存在例外。顺序是由单元之间的依赖关系决定的,所以我不能假设它总是相同的。关于单元初始化我可以假设什么?这可能是一个广泛的问题,但我希望下面的子问题的答案是高度相关的。

  • 在什么条件下单元会被初始化?
  • 所有初始化确实在启动时发生还是文档过于简单化了?
  • 如果不是,还有什么会触发它?
  • 它是严格顺序的,意味着每个单元在下一个单元之前都已完全初始化吗?
  • 所有初始化都在主线程中执行吗?
  • 如果不是,它仍然是线程安全的吗?

我无法找到对此进行更深入探讨的文档。

Dav*_*nan 5

在什么条件下单元会被初始化?

模块中包含的所有单元均已初始化。

所有初始化确实在启动时发生还是文档过于简单化了?

当加载模块时,单元在启动期间初始化。

它是严格顺序的,意味着每个单元在下一个单元之前都已完全初始化吗?

是的。

所有初始化都在主线程中执行吗?

是的。