protected virtual void Dispose(bool disposing) { Logging.Debug("PDFReadingControl::Dispose({0}) @{1}", disposing, dispose_count); WPFDoEvents.SafeExec(() => { if (dispose_count == 0) { // Get rid of managed resources PDFRendererControlArea.Children.Clear(); pdf_renderer_control?.Dispose(); pdf_renderer_control_stats?.pdf_document.PDFRenderer.FlushCachedPageRenderings(); } }, must_exec_in_UI_thread: true); WPFDoEvents.SafeExec(() => { pdf_renderer_control = null; pdf_renderer_control_stats = null; }); ++dispose_count; }
protected virtual void Dispose(bool disposing) { Logging.Debug("PDFReadingControl::Dispose({0}) @{1}", disposing, dispose_count); try { if (dispose_count == 0) { WPFDoEvents.InvokeInUIThread(() => { // Get rid of managed resources PDFRendererControlArea.Children.Clear(); pdf_renderer_control?.Dispose(); pdf_renderer_control_stats?.pdf_document.PDFRenderer.FlushCachedPageRenderings(); }, Dispatcher); } pdf_renderer_control = null; pdf_renderer_control_stats = null; } catch (Exception ex) { Logging.Error(ex); } ++dispose_count; }
private void Dispose(bool disposing) { if (disposing) { // Get rid of managed resources PDFRendererControlArea.Children.Clear(); pdf_renderer_control.Dispose(); pdf_renderer_control = null; pdf_renderer_control_stats.pdf_document.PDFRenderer.FlushCachedPageRenderings(); } // Get rid of unmanaged resources }
protected virtual void Dispose(bool disposing) { Logging.Debug("PDFReadingControl::Dispose({0}) @{1}", disposing, dispose_count); WPFDoEvents.InvokeInUIThread(() => { WPFDoEvents.SafeExec(() => { if (dispose_count == 0) { // GetPDFDocument() depends on a valid pdf_renderer_control reference, so we do this one first! PDFDocument pdf_document = GetPDFDocument(); ASSERT.Test(pdf_document != null); pdf_document?.FlushCachedPageRenderings(); } }); WPFDoEvents.SafeExec(() => { if (dispose_count == 0) { // Get rid of managed resources PDFRendererControlArea.Children.Clear(); pdf_renderer_control?.Dispose(); } }); WPFDoEvents.SafeExec(() => { pdf_renderer_control = null; }); ++dispose_count; }); }