Явная блокировка документа
Имеются два типа контекстов выполнения, приложения и документа. Все зарегистрированные команды и реакторные повторные вызовы выполнены в пределах контекста выполнения документа. Сообщения Windows и повторные вызовы, и некоторый acrxEntryPoint () сообщения выполнены в пределах прикладного контекста.
Явная блокировка требуется только в прикладном контексте выполнения. Блокировка и разблокирование автоматически обработаны для команд, выполняющихся в контексте документа.
Любые команды, которые должны работать вне активного документа, должны вручную исполнить документ блокировка использование следующих типов блокировки.
§
Доступный только для чтения
§ Исключительное чтение
§ Общедоступная запись
§ Исключительная запись
Блокировка в прикладном контексте выполнения может быть сделана, вызывая acDocManager- > lockDocument (). Следующая таблица описывает четыре уровня блокировки опций:
Типы блокировки Команды
Блокировка Команды |
Режим Блокировки |
Флажки Команды |
Описание | ||||
Read only |
(not locked) |
ACRX_CMD_DOCREADLOCK |
Для доступа только для чтения к объектам, блокировка не необходима. Например, чтобы открыть AcDbObject для Acad:: kForRead, или вызывать acedGetVar (), блокировка не необходима. | ||||
Exclusive read |
AcAp::kRead |
ACRX_CMD_DOCREADLOCK, ACRX_CMD_DOCEXCLUSIVELOCK |
Использование исключительного режима чтения предотвращает любой другой контекст выполнения от блокировки документа для записи. Этот режим гарантирует, что документ не будет изменяться в течение блокировки. | ||||
Shared write |
AcAp::kWrite |
(default) |
Заданный по умолчанию режим блокировки. Множественные контексты выполнения могут держать одновременные общедоступные блокировки записи. Команда может делать изменения к документу, и когда команда приостановлена, другие команды могут делать изменения к документу. | ||||
Exclusive write |
AcAp::kXWrite |
ACRX_CMD_DOCEXCLUSIVELOCK |
Гарантирует, что ваш контекст выполнения имеет монопольный доступ, чтобы изменить ресурсы документа |