簡體   English   中英

如何創建一個臨時文件來緩存庫的啟動工作?

[英]How can I create a temporary file to cache startup work for a library?

我正在使用一個C#庫,該庫在啟動時執行一些昂貴的計算。 我想緩存此計算,以便每次應用程序重新啟動時都不必支付費用(請考慮使用EF和預編譯的視圖)。

我想緩存的信息很容易以文本格式寫入文件。 因此,在調用該庫時,我想執行以下操作:

  1. 生成配置參數的唯一哈希。
  2. 檢查是否有該哈希的緩存文件。 如果是這樣,請讀入並使用它跳過設置計算。
  3. 如果不是,請執行設置計算並生成一個適當的緩存文件,該緩存文件由配置參數的哈希命名。

此外,我不想永久地將用戶的硬盤這類文件丟掉:我希望在可能的范圍內由操作系統自動清理它們(很像臨時文件)。

另外,因為這是一個庫,所以我不能依賴於正在安裝的其他軟件。 因此,我更喜歡純.NET解決方案。

誰能指出我這樣做的好方法/.NET API?

您可能應該使用ApplicationData目錄存儲緩存文件,例如:

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

如果要自動清除,則可以在安裝過程中創建一個空的緩存文件,以便在卸載應用程序時自動刪除該文件。 或在應用程序的安裝程序類中自己編寫清除方法。

我認為您不能依靠操作系統來進行清理,Windows甚至無法清理自己的垃圾文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM