2017-01-17 27 views
1

この問題は、VB.NETとC#Winformアプリケーションの両方に影響します。 Adobe PDF Viewer conreolを含むFormを閉じると、Formは10秒後に終了します。私はDisposeメソッドまで問題を追跡しました。通常、C#では、Adobe PDF Controlからフォーカスを奪うのは、FormClosingイベントハンドラにVB.NETで行を追加することで、フォーカスを奪っても、それでもFormが閉じるまでに時間がかかります。私は明示的にコントロールを処分しようとしましたが、暗黙のうちに - 含有するものを処分することによってFormになりました。 LoadFile()メソッドで空文字列を試しました。新しいinteropライブラリへの新しい参照を試みました。何も動作しません。 AxAcroPDFlibを置き換える別のAPI /ライブラリをお勧めする場合は、使用しているものを読むことが大好きです。Acrobat PDFビューアの制御に処理時間がかかる

+0

同じ問題が発生しています(c#.net)。速い修正は古いバージョン(https://helpx.adobe.com/acrobat/kb/install-reader-x-windows.html)です。何かを見つけたら、この投稿を更新してください。 –

+0

クローズイベントの別のコントロールにフォーカスを移すことは、数日前まで私たちのVB.NETアプリケーションで動作していました。私たちはAdobeへのアップデートを受けて、もう一度遅延を見ています。まだ解決策を見つけていない。私はある時点で別のコントロールに移動するつもりですが、今のところこの回避策を見つけることを望んでいます。 –

答えて

1

私は今解決策を持っています。初期のテストは有望です。 つまり、Controls.Remove(yourPdfViewerControl)FormClosingイベントハンドラを追加します。もちろん、これは問題の瞬間的な緩和を提供しますが、メモリリークを引き起こす可能性があります。 Containerからコントロールを削除した後は、nullをメモリアドレスにアサートして、メモリマネージャがそのジョブを実行することを期待できます。

リークを防ぐために、私はPdfViewerコントロール用に1つのメモリ空間を持つクラスを作成しました。 Formにビューアが必要な場合は、メモリリークを防ぐために、任意のフォームからアクセス可能なオブジェクトに要求します。 Formが終了したときにDisposeメソッドが呼び出されないようにするには、このControlControlsコンテナから削除してください。 必要に応じてサンプルコードを提供できます。

関連する問題