2015-10-25 2 views
1

Документация описывает инициализацию единицы, которая будет выполняться при запуске программы, но в случае (автоматически загружаемых) BPL есть исключения. Порядок определяется зависимостями между единицами, поэтому я не могу считать, что он всегда один и тот же. Что может Я предполагаю об инициализации блока? Это может быть широкий вопрос, но я ожидаю, что ответы на подзаголовки ниже будут очень связаны.Что я могу сказать об инициализации устройства?

  • На каких условиях инициализируется единица?
  • Действительно ли инициализация происходит при запуске или упрощает документацию?
  • Если нет, что еще вызовет его?
  • Это строго последовательный, что означает, что каждый блок полностью инициализирован до следующего?
  • Выполняется ли все инициализация в основном потоке?
  • Если нет, то он по-прежнему является потокобезопасным?

У меня не было возможности найти документацию, которая будет более глубокой в ​​этом.

+1

Следует отметить, что существует иерархия инициализации, основанная на основном файле проекта. Он будет инициализировать единицы в порядке их нахождения в предложениях «uses» при разборе блоков. Это также означает, что «Система» и т. Д. Также инициализируются перед вашим собственным проектом. Есть одна процедура, которая в цикле запускает инициализацию всех необходимых единиц в порядке их использования (я видел, что такие циклы инициализируют более 600 единиц последовательно). –

ответ

4

На каких условиях инициализируется единица?

Все модули, входящие в ваш модуль, инициализируются.

Все ли инициализация действительно происходит при запуске или упрощает документацию?

Единицы инициализируются во время запуска, когда модуль загружен.

Это строго последовательный, означая, что каждый блок полностью инициализирован до следующего?

Да.

Выполняется ли все инициализация в основном потоке?

Да.

+0

Под «включенным в ваш модуль» вы подразумеваете ссылку? –

+0

Это еще один способ выразить это. –

Смежные вопросы