2

私は、swingutilitiesスレッドメカニズムによって既に保存されているPDFファイルを画面に開く別のメソッドを呼び出すメソッドを持っています。指定されたクライアント パスから pdf ファイルを開きますが、メソッドの残りの部分では、フォルダーからすべての pdf ファイルを消去します。

私の問題は、このメソッドを何度も呼び出して同時に複数の pdf ファイルを開く場合、メモリ管理の観点から、すべての pdf ファイルを含むパスをクリーンアップする最良の方法は何かということです。

私のコードスニペットは次のようになります:

public void fileSaveFinished(String filePath){
         openPDFReport(filePath); //display pdf to screen
         cleanFolderContent(folderPath, filePath); // It cleans folder contents except given filePath}

public void opendPDFReport(String filePath){


    SwingUtilities.invokeLater(new Runnable(){

        PDFFileLauncher.open(filePath);
     }

}
4

1 に答える 1

1

ここであなたの質問は共有リソースに関連しています。PDFを読んで、同じものを削除する必要があります。そのため、メソッド プーリングを使用し、待機および通知メソッドを使用して作業を管理する必要があります。ファイルの読み取り操作が完了するまで待ってから、ファイルを削除するように通知します。待機と通知の詳細については、いくつかの優れたチュートリアルを参照してください。彼らはきっとあなたの問題を解決します。

于 2013-04-01T09:45:05.147 に答える