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;
        }
Example #2
0
        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;
        }
Example #3
0
        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;
            });
        }