Часто задаваемые вопросы: TBarCode DLL / TBarCode Library
Как повысить скорость для многопоточности?
Как повысить скорость для многопоточности?
В BCInitLibrary, DeInitLibrary, BCLicenseMe и BCInitDLL есть критические секции. Они необходимы для инициализации статических массивов или копирования данных. Также кратковременно блокируются эксклюзивные ресурсы в BCCreate и BCCheck.
Шаги для повышения скорости:
- Вызывайте BCInitLibrary и BCLicenseMe только один раз в начале процесса - не для каждого создания штрихкода!
- Для каждого потока: используйте последовательность BCAlloc/…/BCCreate/../BCFree для каждого отдельного создания штрихкода.
- Для каждого создания штрихкода (внутри одного потока): если вы хотите создать другой штрихкод с другими данными, но теми же свойствами штрихкода, нет необходимости в ещё одной последовательности BCAlloc/../BCFree (это только тратит время). Просто измените данные штрихкода с помощью BCSetText, пересоздайте штрихкод с помощью BCCreate и затем отрисуйте его.
- BCCheck можно пропустить, он не требуется в этом сценарии (поскольку данные штрихкода также проверяются в BCCreate).
- Внутреннее выделение памяти используется более эффективно, если вы задаёте данные штрихкода непосредственно перед вызовом BCCreate(..).