gpt4 book ai didi

c# - AxAcroPDF 控件窗口窗体在关闭窗体时挂起

转载 作者:太空宇宙 更新时间:2023-11-03 23:06:27 25 4
gpt4 key购买 nike

我正在处理一个用 C# 编写的 Windows 窗体 .NET 应用程序,它需要显示具有所有关联功能(旋转对象、改变灯光等)的 3D pdf。我正在使用 AxAcroPDF COM 控件,它运行流畅。问题是,当我尝试关闭放置控件的窗体时,有时它会在处理控件时无缘无故地挂起几秒钟。我在测试期间加载的 3D 文件不是特别重。完全相同的文件在独立的 adobe reader 中打开和关闭时没有特别的延迟。我在 Windows 窗体关闭事件中使用以下代码:

        private void DrawingForm_FormClosing(object sender, FormClosingEventArgs e)
{
this.axAcroPDF.Dispose();
Application.DoEvents();
CoFreeUnusedLibraries(); }

[System.Runtime.InteropServices.DllImport("ole32.dll")]
static extern void CoFreeUnusedLibraries();

有趣的是,如果文件刚刚显示,窗体会正常关闭,但是,当旋转 3D 文件中的对象时,它会在关闭期间挂起。当它挂起时,会显示 watch 图标(与独立 Adob​​e PDF 中显示的相同)。悬挂时间在15-20秒之间。我试图在 webbrowser 控件中显示文件,但我得到了类似的结果。这个问题的原因是什么?我试图搜索替代的稳定控件,但没有找到任何支持 3D 的控件。

最佳答案

FormClosing 事件处理程序中添加 2 行:

this.Controls.Remove(yourAxAcroPDFControl);

yourAxAcroPDFControl = null;在 Adob​​e 更新之前,将其视为临时解决方案。我检查了 Adob​​e SDK 示例,尽管它们是由 Adob​​e 自己编写的,但它们也会导致问题,因此我们可以预期他们会认为这是一个问题。

关于c# - AxAcroPDF 控件窗口窗体在关闭窗体时挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41022136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com