you shall make file name like "pdf_file_name_pageno.png".
in "render_thumb" method, you can create a Bitmap object, and then draw DIB to Bitmap object using m_dib.DrawToBMP().
at last save bitmap object to file.
at begin of "render_thumb" method, you shall check is "pdf_file_name_pageno.png" exists?
if exists, you can simply load from this file to Bitmap object, and create a DIB object, using BMP.DrawToDIB draw to DIB object instead of page rendering.
this will make lots file, so you may need delete all cache file when PDFView closed.