THotPDF.PrefetchLoadedPages Method
异步预热已加载页面的光栅缓存,在显示列表编译或回放期间不持有渲染缓存锁
声明
procedure PrefetchLoadedPages(const PageRange: string= ''; DPI: Integer= 150);
单元
HPDFDoc
参数
| 名称 | 用途 |
|---|---|
PageRange | 标准页面范围解析器接受的从 1 开始的页面范围,留空时表示所有已加载页面 |
DPI | 每个调度缓存条目使用的光栅分辨率,无效值会被替换为 150 |
返回值
此成员不返回值
使用说明
- 启动新请求时会先协作式取消并加入上一个请求,然后才调度新的页面集合
- 前台调用
RenderLoadedPageToBitmap、RenderLoadedPageToBitmapCached和GetLoadedCachedRenderedBitmap时,会在渲染之前抢占正在进行的预取工作 - 取消检查点贯穿内容分词、显示列表构建和渲染器回放,而单个编解码器、过滤器、源读取和操作系统调用保持原子
- 缓存检查与发布是串行化的,但编译和光栅化在缓存锁之外运行,后台工作因此不会独占前台渲染
- 前台缓存渲染可以在取消完成的同时复制既有的不可变内存缓存位图;复制前会先取得正常的内存预留,返回前等待工作线程逻辑完成
- 前台缓存未命中时,会先等待工作线程完成再开始新的文档工作;显式取消、替换、重新加载和销毁仍会 join 并释放保留的工作线程
- 预取请求活动期间不要修改或重新加载文档