ObjectARX, AutoCAD. Среда программирования библиотеки C++

       

SimpleView


SimpleView - выборка vectortaker. Это осуществляет простого менеджера области просмотра и поставляет AcGixSimpleView. AcGixSimpleView объединяет выполнение AcGiViewport и AcGixVectorTaker в отдельный объект. Это выполнение использует GDI Windows, чтобы отобразить результатов перегенеральных на экране. Полное выполнение SimpleView снабжено в исходной форме. Это может изменяться разработчиками, кто желают определить систему управления вида, которая удовлетворяет потребности их приложения. SimpleView предназначен, чтобы демонстрировать то, что требовано, чтобы управлять размещением области просмотра и работать с AcGix, чтобы формировать полный инструмент средства просмотра и служить как отправная точка для такого выполнения.

SimpleView клиенты непосредственно связываются с библиотекой release/AcGixSimpleView.lib.

Источник и соответствующий файл проекта Microsoft Visual C++ снабжены в каталоге samples/AcGixSimpleView.

AcGixBlockView обеспечивает базовый класс для различных типов представлений, которые нужно управлять SimpleView менеджером. Это позволяет, и SimpleView и WhipView управляться полиморфно тем же самым менеджером.

Использование мьютексов

баз данных

Когда приложение позволяет множественным потокам пробегать код базы данных, конфликты в конечном счете возникнут. Они будут обычно приводить к ошибкам в acdbOpenObject или в вашем коде или во внутренних выполнении API. По этой причине, AcGixSimpleView поддерживает базу данных mutex.

Всякий раз, когда один из SimpleView потоков должен войти в код базы данных, это пробует получать этот mutex, ожидая, пока это не делает. ViewAcDb использует тот же самый mutex, чтобы обратиться к базе данных. Это предотвращает эти два потока от конфликта в пределах кода базы данных.

Основная процедура для многопоточного программирования - то, что всякий раз, когда Вы запускаете операцию базы данных, назовите getDatabaseMutex () методом в начале операции, и разместите запрос к releaseDatabaseMutex () в конец.

Они вызывают, должен быть соединен, иначе ваше приложение зависнет. Это означает, что, если Вы имеете инструкцию возвращения где-нибудь в середине вашего кода, удостоверитесь, что Вы имеете запрос к releaseDatabaseMutex () прежде, чем Вы выходите. Вы должны выпустить mutex, как только Вы сделаны, иначе перегенеральный поток будет ждать навсегда.

Вы можете использовать Mutex класс, включенный в AcGixSimpleViewManager.cpp, чтобы помочь Вам гарантировать, что вызывает,  соединены. AcGixSimpleViewManager класс выставляет три метода для Вас, чтобы получить mutex. DatabaseMutex () метод обеспечивается для прямого доступа к mutex. Получить и методы выпуска обеспечиваются для удобства. Методы –

void getDatabaseMutex()

void releaseDatabaseMutex()

HANDLE databaseMutex()



Содержание раздела