Exemplarische Vorgehensweise: Zwischenspeichern von Anwendungsdaten in einer WPF-AnwendungWalkthrough: Caching Application Data in a WPF Application

Das Zwischenspeichern ermöglicht es Ihnen, Daten für schnellen Zugriff im Arbeitsspeicher zu speichern.Caching enables you to store data in memory for rapid access. Wenn erneut auf die Daten zugegriffen wird, erhalten Anwendungen die Daten aus dem Zwischenspeicher, anstatt sie aus der Originalquelle abzurufen.When the data is accessed again, applications can get the data from the cache instead of retrieving it from the original source. Dies kann die Leistung und Skalierbarkeit verbessern.This can improve performance and scalability. Darüber hinaus macht das Zwischenspeichern Daten verfügbar, wenn die Datenquelle vorübergehend nicht verfügbar ist.In addition, caching makes data available when the data source is temporarily unavailable.

Der .NET Framework stellt Klassen bereit, die es Ihnen ermöglichen, das Caching in .NET Framework Anwendungen zu verwenden.The .NET Framework provides classes that enable you to use caching in .NET Framework applications. Diese Klassen befinden sich im System.Runtime.Caching-Namespace.These classes are located in the System.Runtime.Caching namespace.

Hinweis

Der System.Runtime.Caching-Namespace ist neu in .NET Framework 4.The System.Runtime.Caching namespace is new in the .NET Framework 4. Dieser Namespace macht das Zwischenspeichern für alle .NET Framework Anwendungen verfügbar.This namespace makes caching is available to all .NET Framework applications. In früheren Versionen der .NET Framework war das Zwischenspeichern nur im System.Web-Namespace verfügbar und erforderte daher eine Abhängigkeit von ASP.NET-Klassen.In previous versions of the .NET Framework, caching was available only in the System.Web namespace and therefore required a dependency on ASP.NET classes.

In dieser exemplarischen Vorgehensweise erfahren Sie, wie Sie die im .NET Framework verfügbare cachingrichtfunktion als Teil einer Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)-Anwendung verwenden.This walkthrough shows you how to use the caching functionality that is available in the .NET Framework as part of a Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) application. In der exemplarischen Vorgehensweise Zwischenspeichern Sie den Inhalt einer Textdatei.In the walkthrough, you cache the contents of a text file.

In dieser exemplarischen Vorgehensweise werden u. a. die folgenden Aufgaben beschrieben:Tasks illustrated in this walkthrough include the following:

  • Erstellen eines WPF-Anwendungs Projekts.Creating a WPF application project.

  • Hinzufügen eines Verweises auf die .NET Framework 4.Adding a reference to the .NET Framework 4.

  • Initialisieren eines Caches.Initializing a cache.

  • Hinzufügen eines Cache Eintrags, der den Inhalt einer Textdatei enthält.Adding a cache entry that contains the contents of a text file.

  • Bereitstellen einer Entfernungs Richtlinie für den Cache Eintrag.Providing an eviction policy for the cache entry.

  • Überwachen des Pfads der zwischengespeicherten Datei und Benachrichtigen der Cache Instanz über Änderungen am überwachten Element.Monitoring the path of the cached file and notifying the cache instance about changes to the monitored item.

Erforderliche VoraussetzungenPrerequisites

Für die Durchführung dieser exemplarischen Vorgehensweise benötigen Sie Folgendes:In order to complete this walkthrough, you will need:

  • Visual Studio 2010.Visual Studio 2010.

  • Eine Textdatei, die eine kleine Menge an Text enthält.A text file that contains a small amount of text. (Der Inhalt der Textdatei wird in einem Meldungs Feld angezeigt.) Der in der exemplarischen Vorgehensweise dargestellte Code setzt voraus, dass Sie mit der folgenden Datei arbeiten:(You will display the contents of the text file in a message box.) The code illustrated in the walkthrough assumes that you are working with the following file:

    c:\cache\cacheText.txt

    Allerdings können Sie eine beliebige Textdatei verwenden und kleinere Änderungen am Code in dieser exemplarischen Vorgehensweise vornehmen.However, you can use any text file and make small changes to the code in this walkthrough.

Erstellen eines WPF-Anwendungs ProjektsCreating a WPF Application Project

Zunächst erstellen Sie ein WPF-Anwendungsprojekt.You will start by creating a WPF application project.

So erstellen Sie eine WPF-Anwendung.To create a WPF application

  1. Starten Sie Visual Studio.Start Visual Studio.

  2. Klicken Sie im Menü Datei auf neu, und klicken Sie dann auf Neues Projekt.In the File menu, click New, and then click New Project.

    Das Dialogfeld Neues Projekt wird angezeigt.The New Project dialog box is displayed.

  3. Wählen Sie unter installierte Vorlagendie Programmiersprache aus, die Sie verwenden möchten (Visual Basic oder Visual C# ).Under Installed Templates, select the programming language you want to use (Visual Basic or Visual C#).

  4. Wählen Sie im Dialogfeld Neues Projekt die Option WPF-Anwendungaus.In the New Project dialog box, select WPF Application.

    Hinweis

    Wenn die WPF-Anwendungs Vorlage nicht angezeigt wird, stellen Sie sicher, dass Sie auf eine Version der .NET Framework abzielen, die WPF unterstützt.If you do not see the WPF Application template, make sure that you are targeting a version of the .NET Framework that supports WPF. Wählen Sie im Dialogfeld Neues Projekt in der Liste .NET Framework 4 aus.In the New Project dialog box, select .NET Framework 4 from the list.

  5. Geben Sie im Textfeld Name einen Namen für das Projekt ein.In the Name text box, enter a name for your project. Sie können z. b. wpfcachingeingeben.For example, you can enter WPFCaching.

  6. Aktivieren Sie das Kontrollkästchen Verzeichnis für Projektmappe erstellen.Select the Create directory for solution check box.

  7. Klicken Sie auf OK.Click OK.

    Der WPF-Designer wird in der Entwurfs Ansicht geöffnet und zeigt die Datei "MainWindow. XAML" an.The WPF Designer opens in Design view and displays the MainWindow.xaml file. Visual Studio erstellt den Ordner " My Project ", die Datei "Application. XAML" und die Datei "MainWindow. XAML".Visual Studio creates the My Project folder, the Application.xaml file, and the MainWindow.xaml file.

.NET Framework und Hinzufügen eines Verweises auf die cacheassemblysTargeting the .NET Framework and Adding a Reference to the Caching Assemblies

Standardmäßig Zielen WPF-Anwendungen auf das .NET Framework 4 Client Profile.NET Framework 4 Client Profileab.By default, WPF applications target the .NET Framework 4 Client Profile.NET Framework 4 Client Profile. Um den System.Runtime.Caching-Namespace in einer WPF-Anwendung zu verwenden, muss die Anwendung auf .NET Framework 4 (nicht auf den .NET Framework 4 Client Profile.NET Framework 4 Client Profile) abzielen und muss einen Verweis auf den-Namespace enthalten.To use the System.Runtime.Caching namespace in a WPF application, the application must target the .NET Framework 4 (not the .NET Framework 4 Client Profile.NET Framework 4 Client Profile) and must include a reference to the namespace.

Der nächste Schritt besteht daher darin, das .NET Framework Ziel zu ändern und einen Verweis auf den System.Runtime.Caching-Namespace hinzuzufügen.Therefore, the next step is to change the .NET Framework target and add a reference to the System.Runtime.Caching namespace.

Hinweis

Die Vorgehensweise zum Ändern des .NET Framework Ziels unterscheidet sich in einem Visual Basic Projekt und in C# einem visuellen Projekt.The procedure for changing the .NET Framework target is different in a Visual Basic project and in a Visual C# project.

So ändern Sie die Ziel .NET Framework in Visual BasicTo change the target .NET Framework in Visual Basic

  1. Klicken Sie im Projektmappen- Explorermit der rechten Maustaste auf den Projektnamen, und klicken Sie auf Eigenschaften.In Solutions Explorer, right-click the project name, and then click Properties.

    Das Fenster Eigenschaften für die Anwendung wird angezeigt.The properties window for the application is displayed.

  2. Klicken Sie auf die Registerkarte Kompilieren.Click the Compile tab.

  3. Klicken Sie am unteren Rand des Fensters auf Erweiterte Kompilierungsoptionen... .At the bottom of the window, click Advanced Compile Options….

    Das Dialogfeld Erweiterte Compilereinstellungen wird angezeigt.The Advanced Compiler Settings dialog box is displayed.

  4. Wählen Sie in der Liste Ziel Framework (alle Konfigurationen) die Option .NET Framework 4 aus.In the Target framework (all configurations) list, select .NET Framework 4. (Wählen Sie .NET Framework 4 Client Profile.NET Framework 4 Client Profilenicht aus.)(Do not select .NET Framework 4 Client Profile.NET Framework 4 Client Profile.)

  5. Klicken Sie auf OK.Click OK.

    Das Dialogfeld Änderung des Zielframeworks wird angezeigt.The Target Framework Change dialog box is displayed.

  6. Klicken Sie im Dialogfeld Ziel Framework-Änderung auf Ja.In the Target Framework Change dialog box, click Yes.

    Das Projekt ist geschlossen und wird dann erneut geöffnet.The project is closed and is then reopened.

  7. Fügen Sie einen Verweis auf die Cacheassembly hinzu, indem Sie die folgenden Schritte ausführen:Add a reference to the caching assembly by following these steps:

    1. Klicken Sie in Projektmappen-Explorermit der rechten Maustaste auf den Namen des Projekts, und klicken Sie dann auf Verweis hinzufügen.In Solution Explorer, right-click the name of the project and then click Add Reference.

    2. Wählen Sie die Registerkarte .net , wählen Sie System.Runtime.Cachingaus, und klicken Sie dann auf OK.Select the .NET tab, select System.Runtime.Caching, and then click OK.

So ändern Sie die Ziel .NET Framework in einem C# visuellen ProjektTo change the target .NET Framework in a Visual C# project

  1. Klicken Sie in Projektmappen-Explorermit der rechten Maustaste auf den Projektnamen, und klicken Sie dann auf Eigenschaften.In Solution Explorer, right-click the project name and then click Properties.

    Das Fenster Eigenschaften für die Anwendung wird angezeigt.The properties window for the application is displayed.

  2. Klicken Sie auf die Registerkarte Anwendung .Click the Application tab.

  3. Wählen Sie in der Liste Ziel Framework die Option .NET Framework 4 aus.In the Target framework list, select .NET Framework 4. (Wählen Sie nicht .NET Framework 4 Client Profilaus.)(Do not select .NET Framework 4 Client Profile.)

  4. Fügen Sie einen Verweis auf die Cacheassembly hinzu, indem Sie die folgenden Schritte ausführen:Add a reference to the caching assembly by following these steps:

    1. Klicken Sie mit der rechten Maustaste auf den Ordner Verweise und dann auf Verweis hinzufügen.Right-click the References folder and then click Add Reference.

    2. Wählen Sie die Registerkarte .net , wählen Sie System.Runtime.Cachingaus, und klicken Sie dann auf OK.Select the .NET tab, select System.Runtime.Caching, and then click OK.

Hinzufügen einer Schaltfläche zum WPF-FensterAdding a Button to the WPF Window

Als Nächstes fügen Sie ein Schaltflächen-Steuerelement hinzu und erstellen einen Ereignishandler für das Click-Ereignis der Schaltfläche.Next, you will add a button control and create an event handler for the button's Click event. Später fügen Sie Code hinzu. Wenn Sie auf die Schaltfläche klicken, wird der Inhalt der Textdatei zwischengespeichert und angezeigt.Later you will add code to so when you click the button, the contents of the text file are cached and displayed.

Hinzufügen eines Schaltflächen-Steuer ElementsTo add a button control

  1. Doppelklicken Sie in Projektmappen-Explorerauf die Datei "MainWindow. XAML", um Sie zu öffnen.In Solution Explorer, double-click the MainWindow.xaml file to open it.

  2. Ziehen Sie aus der Toolboxunter Common WPF-Steuerelemente ein Button-Steuerelement in das Fenster MainWindow.From the Toolbox, under Common WPF Controls, drag a Button control to the MainWindow window.

  3. Legen Sie im Fenster Eigenschaften für die Content-Eigenschaft des Button-Steuer Elements den Wert Get Cachefest.In the Properties window, set the Content property of the Button control to Get Cache.

Initialisieren des Caches und Zwischenspeichern eines EintragsInitializing the Cache and Caching an Entry

Fügen Sie als nächstes den Code hinzu, um die folgenden Aufgaben auszuführen:Next, you will add the code to perform the following tasks:

  • Erstellen Sie eine Instanz der Cache-Klasse, d. –., Sie instanziieren Sie ein neues MemoryCache-Objekt.Create an instance of the cache class—that is, you will instantiate a new MemoryCache object.

  • Legen Sie fest, dass der Cache ein HostFileChangeMonitor Objekt verwendet, um Änderungen in der Textdatei zu überwachen.Specify that the cache uses a HostFileChangeMonitor object to monitor changes in the text file.

  • Lesen Sie die Textdatei, und speichern Sie Ihren Inhalt als Cache Eintrag.Read the text file and cache its contents as a cache entry.

  • Zeigen Sie den Inhalt der zwischengespeicherten Textdatei an.Display the contents of the cached text file.

So erstellen Sie das Cache ObjektTo create the cache object

  1. Doppelklicken Sie auf die Schaltfläche, die Sie soeben hinzugefügt haben, um einen Ereignishandler in der MainWindow.XAML.cs-oder MainWindow. XAML. vb-Datei zu erstellen.Double-click the button you just added in order to create an event handler in the MainWindow.xaml.cs or MainWindow.Xaml.vb file.

  2. Fügen Sie am Anfang der Datei (vor der Klassen Deklaration) die folgenden Imports (Visual Basic)-oder using (C#)-Anweisung hinzu:At the top of the file (before the class declaration), add the following Imports (Visual Basic) or using (C#) statements:

    using System.Runtime.Caching;
    using System.IO;
    
    Imports System.Runtime.Caching
    Imports System.IO
    
  3. Fügen Sie im-Ereignishandler den folgenden Code hinzu, um das Cache Objekt zu instanziieren:In the event handler, add the following code to instantiate the cache object:

    ObjectCache cache = MemoryCache.Default;
    
    Dim cache As ObjectCache = MemoryCache.Default
    

    Die ObjectCache-Klasse ist eine integrierte Klasse, die einen in-Memory-Objekt Cache bereitstellt.The ObjectCache class is a built-in class that provides an in-memory object cache.

  4. Fügen Sie den folgenden Code hinzu, um den Inhalt eines Cache Eintrags namens filecontentszu lesen:Add the following code to read the contents of a cache entry named filecontents:

    Dim fileContents As String = TryCast(cache("filecontents"), String)
    
    string fileContents = cache["filecontents"] as string;
    
  5. Fügen Sie folgenden Code hinzu, um zu überprüfen, ob der Cache Eintrag namens filecontents vorhanden ist:Add the following code to check whether the cache entry named filecontents exists:

    If fileContents Is Nothing Then
    
    End If
    
    if (fileContents == null)
    {
    
    }
    

    Wenn der angegebene Cache Eintrag nicht vorhanden ist, müssen Sie die Textdatei lesen und als Cache Eintrag dem Cache hinzufügen.If the specified cache entry does not exist, you must read the text file and add it as a cache entry to the cache.

  6. Fügen Sie im if/then-Block den folgenden Code hinzu, um ein neues CacheItemPolicy-Objekt zu erstellen, das angibt, dass der Cache Eintrag nach 10 Sekunden abläuft.In the if/then block, add the following code to create a new CacheItemPolicy object that specifies that the cache entry expires after 10 seconds.

    Dim policy As New CacheItemPolicy()
    policy.AbsoluteExpiration = DateTimeOffset.Now.AddSeconds(10.0)
    
    CacheItemPolicy policy = new CacheItemPolicy();
    policy.AbsoluteExpiration = DateTimeOffset.Now.AddSeconds(10.0);
    

    Wenn keine Entfernungs-oder Ablauf Informationen bereitgestellt werden, wird der Standardwert InfiniteAbsoluteExpiration. Dies bedeutet, dass die Cache Einträge nie auf der Grundlage eines absoluten Zeitraums ablaufen.If no eviction or expiration information is provided, the default is InfiniteAbsoluteExpiration, which means the cache entries never expire based only on an absolute time. Stattdessen laufen Cache Einträge nur dann ab, wenn genügend Arbeitsspeicher vorhanden ist.Instead, cache entries expire only when there is memory pressure. Als bewährte Vorgehensweise sollten Sie immer explizit einen absoluten oder einen gleitenden Ablauf angeben.As a best practice, you should always explicitly provide either an absolute or a sliding expiration.

  7. Fügen Sie im if/then Block und befolgen Sie den Code, den Sie im vorherigen Schritt hinzugefügt haben, um eine Sammlung für die Dateipfade zu erstellen, die Sie überwachen möchten, und um den Pfad der Textdatei der Auflistung hinzuzufügen:Inside the if/then block and following the code you added in the previous step, add the following code to create a collection for the file paths that you want to monitor, and to add the path of the text file to the collection:

    Dim filePaths As New List(Of String)()
    filePaths.Add("c:\cache\cacheText.txt")
    
    List<string> filePaths = new List<string>();
    filePaths.Add("c:\\cache\\cacheText.txt");
    

    Hinweis

    Wenn die zu verwendende Textdatei nicht c:\cache\cacheText.txtist, geben Sie den Pfad an, in dem die Textdatei verwendet werden soll.If the text file you want to use is not c:\cache\cacheText.txt, specify the path where the text file is that you want to use.

  8. Fügen Sie nach dem Code, den Sie im vorherigen Schritt hinzugefügt haben, den folgenden Code hinzu, um der Sammlung von Änderungs Monitoren für den Cache Eintrag ein neues HostFileChangeMonitor Objekt hinzuzufügen:Following the code that you added in the previous step, add the following code to add a new HostFileChangeMonitor object to the collection of change monitors for the cache entry:

    policy.ChangeMonitors.Add(New HostFileChangeMonitor(filePaths))
    
    policy.ChangeMonitors.Add(new HostFileChangeMonitor(filePaths));
    

    Das HostFileChangeMonitor-Objekt überwacht den Pfad der Textdatei und benachrichtigt den Cache, wenn Änderungen auftreten.The HostFileChangeMonitor object monitors the text file's path and notifies the cache if changes occur. In diesem Beispiel läuft der Cache Eintrag ab, wenn sich der Inhalt der Datei ändert.In this example, the cache entry will expire if the content of the file changes.

  9. Fügen Sie nach dem Code, den Sie im vorherigen Schritt hinzugefügt haben, den folgenden Code hinzu, um den Inhalt der Textdatei zu lesen:Following the code that you added in the previous step, add the following code to read the contents of the text file:

    fileContents = File.ReadAllText("c:\cache\cacheText.txt") & vbCrLf & DateTime.Now.ToString()
    
    fileContents = File.ReadAllText("c:\\cache\\cacheText.txt") + "\n" + DateTime.Now;
    

    Der Zeitstempel für Datum und Uhrzeit wird hinzugefügt, damit Sie sehen können, wann der Cache Eintrag abläuft.The date and time timestamp is added so that you will be able to see when the cache entry expires.

  10. Fügen Sie nach dem Code, den Sie im vorherigen Schritt hinzugefügt haben, den folgenden Code hinzu, um den Inhalt der Datei in das Cache Objekt als CacheItem Instanz einzufügen:Following the code that you added in the previous step, add the following code to insert the contents of the file into the cache object as a CacheItem instance:

    cache.Set("filecontents", fileContents, policy)
    
    cache.Set("filecontents", fileContents, policy);
    

    Sie geben Informationen darüber an, wie der Cache Eintrag entfernt werden soll, indem Sie das CacheItemPolicy Objekt, das Sie zuvor erstellt haben, als Parameter übergeben.You specify information about how the cache entry should be evicted by passing the CacheItemPolicy object that you created earlier as a parameter.

  11. Fügen Sie nach dem if/then-Block den folgenden Code hinzu, um den zwischengespeicherten Dateiinhalt in einem Meldungs Feld anzuzeigen:After the if/then block, add the following code to display the cached file content in a message box:

    MessageBox.Show(fileContents)
    
    MessageBox.Show(fileContents);
    
  12. Klicken Sie im Menü Erstellen auf wpfcaching erstellen , um das Projekt zu erstellen.In the Build menu, click Build WPFCaching to build your project.

Testen der Zwischenspeicherung in der WPF-AnwendungTesting Caching in the WPF Application

Sie können die Anwendung jetzt testen.You can now test the application.

So testen Sie die Zwischenspeicherung in der WPF-AnwendungTo test caching in the WPF application

  1. Drücken Sie STRG+F5, um die Anwendung auszuführen.Press CTRL+F5 to run the application.

    Das Fenster MainWindow wird angezeigt.The MainWindow window is displayed.

  2. Klicken Sie auf Cache erhalten.Click Get Cache.

    Der zwischengespeicherte Inhalt aus der Textdatei wird in einem Meldungs Feld angezeigt.The cached content from the text file is displayed in a message box. Beachten Sie den Zeitstempel der Datei.Notice the timestamp on the file.

  3. Schließen Sie das Meldungs Feld, und klicken Sie dann erneut auf Cache erhalten .Close the message box and then click Get Cache again.

    Der Zeitstempel ist unverändert.The timestamp is unchanged. Dies gibt an, dass der zwischengespeicherte Inhalt angezeigt wird.This indicates the cached content is displayed.

  4. Warten Sie 10 Sekunden oder mehr, und klicken Sie dann erneut auf Cache erhalten .Wait 10 seconds or more and then click Get Cache again.

    Dieses Mal wird ein neuer Zeitstempel angezeigt.This time a new timestamp is displayed. Dies gibt an, dass die Richtlinie den Cache Eintrag ablaufen lässt und dass neuer zwischen gespeicherter Inhalt angezeigt wird.This indicates that the policy let the cache entry expire and that new cached content is displayed.

  5. Öffnen Sie in einem Text-Editor die Textdatei, die Sie erstellt haben.In a text editor, open the text file that you created. Nehmen Sie noch keine Änderungen vor.Do not make any changes yet.

  6. Schließen Sie das Meldungs Feld, und klicken Sie dann erneut auf Cache erhalten .Close the message box and then click Get Cache again.

    Beachten Sie den Zeitstempel.Notice the timestamp again.

  7. Nehmen Sie eine Änderung an der Textdatei vor, und speichern Sie die Datei.Make a change to the text file and then save the file.

  8. Schließen Sie das Meldungs Feld, und klicken Sie dann erneut auf Cache erhalten .Close the message box and then click Get Cache again.

    Dieses Meldungs Feld enthält den aktualisierten Inhalt aus der Textdatei und einen neuen Zeitstempel.This message box contains the updated content from the text file and a new timestamp. Dadurch wird angegeben, dass der Cache Eintrag vom Host Datei-Änderungs Monitor sofort entfernt wurde, als Sie die Datei geändert haben, obwohl der absolute Timeout Zeitraum nicht abgelaufen war.This indicates that the host-file change monitor evicted the cache entry immediately when you changed the file, even though the absolute timeout period had not expired.

    Hinweis

    Sie können die Entfernungs Zeit auf 20 Sekunden oder mehr erhöhen, damit Sie mehr Zeit für eine Änderung in der Datei haben.You can increase the eviction time to 20 seconds or more to allow more time for you to make a change in the file.

CodebeispielCode Example

Nachdem Sie diese exemplarische Vorgehensweise abgeschlossen haben, ähnelt der Code für das Projekt, das Sie erstellt haben, dem folgenden Beispiel.After you have completed this walkthrough, the code for the project you created will resemble the following example.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Runtime.Caching;
using System.IO;


namespace WPFCaching
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {

            ObjectCache cache = MemoryCache.Default;
            string fileContents = cache["filecontents"] as string;

            if (fileContents == null)
            {
                CacheItemPolicy policy = new CacheItemPolicy();
                policy.AbsoluteExpiration =
                    DateTimeOffset.Now.AddSeconds(10.0);

                List<string> filePaths = new List<string>();
                filePaths.Add("c:\\cache\\cacheText.txt");

                policy.ChangeMonitors.Add(new
                    HostFileChangeMonitor(filePaths));

                // Fetch the file contents.
                fileContents = File.ReadAllText("c:\\cache\\cacheText.txt") + "\n" + DateTime.Now.ToString();

                cache.Set("filecontents", fileContents, policy);

            }
            MessageBox.Show(fileContents);


        }
    }
}
Imports System.Runtime.Caching
Imports System.IO

Class MainWindow

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
        Dim cache As ObjectCache = MemoryCache.Default
        Dim fileContents As String = TryCast(cache("filecontents"), _
            String)

        If fileContents Is Nothing Then
            Dim policy As New CacheItemPolicy()
            policy.AbsoluteExpiration = _
                DateTimeOffset.Now.AddSeconds(10.0)
            Dim filePaths As New List(Of String)()
            filePaths.Add("c:\cache\cacheText.txt")
            policy.ChangeMonitors.Add(New  _
                HostFileChangeMonitor(filePaths))

            ' Fetch the file contents.
            fileContents = File.ReadAllText("c:\cache\cacheText.txt") & vbCrLf & DateTime.Now.ToString()
            cache.Set("filecontents", fileContents, policy)
        End If
        MessageBox.Show(fileContents)
    End Sub
End Class

Siehe auchSee also