ImageCache (archiviato)

Avvertimento

Questo documento è stato archiviato e il componente non è disponibile nella versione corrente di Windows Community Toolkit.

Sebbene non ci siano piani immediati per convertire questo componente in 8.x, la community è lieta di esprimere interesse o contribuire alla sua inclusione.

Per altre informazioni:

La documentazione originale è riportata di seguito.


ImageCache fornisce metodi e strumenti per memorizzare nella cache le immagini in una cartella locale temporanea. ImageCache supporta anche il livello facoltativo di memorizzazione nella cache, che offre prestazioni migliori quando vengono richieste più volte le stesse immagini, ad esempio in elenchi virtualizzati lunghi di immagini. Questo tipo di memorizzazione nella cache è disabilitato per impostazione predefinita, ma può essere abilitato impostando MaxMemoryCacheSize su dimensioni desiderate. Ad esempio: l'impostazione di MaxMemoryCacheSize su 100 indica che 100 ultime immagini richieste verranno mantenute in memoria per essere immediatamente disponibili, senza letture su disco.

Sintassi

// Set cache duration
ImageCache.Instance.CacheDuration = TimeSpan.FromHours(24);

// Enable in-memory caching
ImageCache.Instance.MaxMemoryCacheCount = 100;

var distantUri = new Uri("https://www.myserver.com/image.jpg");

// Load a specific image from the cache. If the image is not in the cache, ImageCache will try to download and store it
var bitmapImage = await ImageCache.Instance.GetFromCacheAsync(distantUri);

// Clear the cache. Please note that you can provide a parameter to define a timespan from now to select cache entries to delete.
await ImageCache.Instance.ClearAsync(); 
' Set cache duration
ImageCache.Instance.CacheDuration = TimeSpan.FromHours(24)

' Enable in-memory caching
ImageCache.Instance.MaxMemoryCacheCount = 100

Dim distantUri = New Uri("https://www.myserver.com/image.jpg")

' Load a specific image from the cache. If the image is not in the cache, ImageCache will try to download and store it
Dim bitmapImage = Await ImageCache.Instance.GetFromCacheAsync(distantUri)

' Clear the cache. Please note that you can provide a parameter to define a timespan from now to select cache entries to delete.
Await ImageCache.Instance.ClearAsync()

Proprietà

Proprietà TIPO Description
Cacheduration TimeSpan Ottiene o imposta la durata di ogni voce della cache
HttpClient HttpClient Ottiene l'istanza di HttpClient
Istanza ImageCache Ottiene la proprietà singleton pubblica
MaintainContext bool Ottiene o imposta un valore che indica se il contesto deve essere mantenuto fino a quando il tipo è stato istanziato o meno.
MaxMemoryCacheCount int Ottiene o imposta il numero massimo di archiviazione degli elementi in memoria
Numero di tentativi uint Ottiene o imposta il numero di tentativi che tentano di assicurarsi che il file sia memorizzato nella cache

Methods

Methods Tipo di ritorno Description
ClearAsync() Task Cancella tutti i file nella cache
ClearAsync(TimeSpan) Task Cancella il file se è scaduto
GetFileFromCacheAsync(Uri) Task<StorageFile> Ottiene l'oggetto StorageFile contenente l'oggetto memorizzato nella cache associato all'URI specificato
GetFromCacheAsync(Uri, Boolean, CancellationToken, List<KeyValuePair<string, object>>) Attività<T> Recupera l'elemento rappresentato dall'URI dalla cache. Se l'elemento non viene trovato nella cache, tenterà di scaricarlo e salvarlo prima di restituirlo al chiamante
GetFromMemoryCache(Uri) T Recupera l'elemento rappresentato dall'URI dalla cache in memoria, se esistente e non è aggiornato. Se l'elemento non viene trovato o non è aggiornato, viene restituita l'istanza predefinita del tipo generico
PreCacheAsync(Uri, Boolean, Boolean, CancellationToken) Task Assicura che l'elemento rappresentato dall'URI sia memorizzato nella cache
RemoveAsync(IEnumerable) Task Elementi rimossi in base all'elenco di URI fornito
RemoveExpiredAsync(Nullable) Task Rimuove i file memorizzati nella cache scaduti

Progetto di esempio

Origine della pagina di esempio della cache delle immagini. Puoi vederlo in azione nell'app di esempio di Windows Community Toolkit.

Requisiti

Famiglia di dispositivi Universale, 10.0.16299.0 o versione successiva
Namespace Microsoft.Toolkit.Uwp
Pacchetto NuGet Microsoft.Toolkit.Uwp

API