2

起動時に高価な計算を実行するC#ライブラリに取り組んでいます。アプリケーションが再起動するたびにコストが支払われないように、この計算をキャッシュしたいと思います(EFとプリコンパイルされたビューを考えてください)。

キャッシュしたい情報は、テキスト形式のファイルに簡単に書き込むことができます。したがって、ライブラリが呼び出されたときに次のことを実行したいと思います。

  1. 構成パラメーターの一意のハッシュを生成します。
  2. そのハッシュのキャッシュファイルがあるかどうかを確認します。もしそうなら、それを読んで、セットアップ計算をスキップするためにそれを使用してください。
  3. そうでない場合は、セットアップ計算を実行し、構成パラメーターのハッシュで指定された適切なキャッシュファイルを生成します。

さらに、このようなファイルをユーザーのハードドライブに永久に散らかしたくはありません。可能な限り、オペレーティングシステム(一時ファイルのように)によって自動的にクリーンアップされるようにします。

また、これはライブラリであるため、インストールされている他のソフトウェアに依存することはできません。したがって、私は純粋な.NETソリューションを好みます。

誰かが私にこのようなことをするための良いメソッド/.NETAPIを教えてもらえますか?

4

1 に答える 1

2

キャッシュファイルを保存するには、おそらくApplicationDataディレクトリを使用する必要があります。例:

var cacheDir = Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), 
    "MyApplicationName");

自動クリーンアップが必要な場合は、セットアップ中に空のキャッシュファイルを作成して、アプリケーションがアンインストールされたときにファイルが自動的に削除されるようにすることができます。または、アプリケーションのインストーラークラスで自分でクリーンアップメソッドを記述します。

クリーンアップをオペレーティングシステムに頼ることはできないと思います。Windowsは独自のガベージファイルをクリーンアップすることさえできません。

于 2012-11-03T02:25:06.957 に答える