我正在使用WPF框架以C#编写程序。我需要显示图像,并且希望将其缓存,以避免不断下载它们。

我可以编写自己的缓存,但是IE已经有一个缓存系统。我可以找到用于从IE缓存中读取条目的代码,但是我没有发现任何有关将项目添加到缓存的问题。有什么好方法吗?还是应该只实现一个单独的缓存?

最佳答案

根据您下载文件的方式,它们可能已经被添加到缓存中。您现在如何下载它们?

您可以将项目添加到IE缓存。在本地,您有两种选择:URLDownloadToCacheFile()将在一个简单的“简单”步骤中完成。 CommitUrlCacheEntry()是做到这一点的核心方式。我假设发现的示例使用FindFirst / FindNextUrlCacheEntry()枚举缓存,因此您应该能够相当轻松地添加CommitUrlCacheEntry()所需的互操作。

但是,作为IE团队的前成员,我不能为您提供任何建议,都不应该使用Wininet缓存。它不可靠,可以从下面清除,经常被损坏,对可以存储多少东西有严格的限制,它受您不了解的各种规则的限制,并且将针对以下条件进行优化IE的用法,不是您的用法。

认真地说,不要这样做。如果您确实需要缓存,请编写自己的缓存。

10-07 12:01
查看更多