StartRangeSourcePrefetch
Управление документами, постепенная загрузка, производительность
Описание
Ставит в очередь фоновое задание, которое повторно обнаруживает и загружает недостающие диапазоны байтов, требуемые графом зависимостей страницы, формы или косвенного объекта
Синтаксис
Delphi
Function TPDFlib.StartRangeSourcePrefetch(DataKind, Index, Priority: Integer;
MaxBytes: Int64= 0; ReadAheadBytes: LongInt= 0;
MaxPasses: Integer= 0): Integer;Параметры
| DataKind | PDF_RANGE_DATA_PAGE, PDF_RANGE_DATA_FORM или PDF_RANGE_DATA_OBJECT |
|---|---|
| Index | Номер страницы с базой 1, ноль для запроса формы или номер косвенного объекта |
| Priority | PDF_RANGE_PREFETCH_PRIORITY_LOW, NORMAL, HIGH или CRITICAL |
| MaxBytes | Бюджет чтения задания; ноль выбирает 64 МиБ, а явное значение должно вмещать хотя бы один блок источника |
| ReadAheadBytes | Дополнительные байты, планируемые после каждого обнаруженного диапазона зависимости до выравнивания по блокам |
| MaxPasses | Максимум раундов обнаружения зависимостей; ноль выбирает 128 |
Возвращаемое значение
Положительный локальный для потока дескриптор задания при успехе или ноль с LastErrorCode 401, когда выбранный документ не обеспечен диапазонами или аргументы недопустимы
Примечания
Один рабочий поток обслуживает каждый потоковый источник диапазонов и выбирает наивысший приоритет в очереди, сохраняя порядок FIFO при равных приоритетах
Рабочий поток использует изолированный парсер над общим кэшем диапазонов байтов, поэтому обнаружение зависимостей не разделяет изменяемое состояние читателя с операциями над документом на переднем плане
Байтовый бюджет включает некэшированные чтения, выполняемые при инициализации и продвижении изолированного парсера зависимостей
Упреждающе выбранные байты остаются подчиненными бюджету кэша потоков и политике вытеснения по наименее недавнему использованию