StartRangeSourcePrefetch

文档管理、渐进式加载、性能

描述

排队一个后台作业,反复发现并获取页面、表单或间接对象依赖图所需的缺失字节区间

语法

Delphi

Function TPDFlib.StartRangeSourcePrefetch(DataKind, Index, Priority: Integer;
  MaxBytes: Int64= 0; ReadAheadBytes: LongInt= 0;
  MaxPasses: Integer= 0): Integer;

参数

DataKindPDF_RANGE_DATA_PAGE、PDF_RANGE_DATA_FORM 或 PDF_RANGE_DATA_OBJECT
Index从 1 开始的页码、表单查询用零,或间接对象编号
PriorityPDF_RANGE_PREFETCH_PRIORITY_LOW、NORMAL、HIGH 或 CRITICAL
MaxBytes作业读取预算;零表示使用 64 MiB,显式值必须至少容纳一个源块
ReadAheadBytes在每个发现的依赖区间之后、块对齐之前调度的额外字节
MaxPasses依赖发现的最大轮数;零表示使用 128

返回值

成功时返回正的流本地作业句柄;选定文档不是区间支撑或参数无效时返回零并把 LastErrorCode 设为 401

备注

每个范围流由一个工作线程服务,选择队列中最高优先级,并在同级优先内保持 FIFO 顺序

工作线程在共享的字节范围缓存之上使用隔离的解析器,因此依赖发现不会与前台文档操作共享可变读取器状态

字节预算包括在初始化和推进隔离依赖解析器期间执行的未缓存读取

预取的字节仍受流缓存预算和最久未用逐出策略约束