Freigeben über


Anleitung: Manuelle Verwaltung von gepufferten Grafiken

Für komplexere Szenarien mit doppelter Pufferung können Sie die .NET Framework-Klassen verwenden, um Ihre eigene Doppelpufferlogik zu implementieren. Die Klasse, die für das Zuordnen und Verwalten einzelner Grafikpuffer verantwortlich ist, ist die BufferedGraphicsContext Klasse. Jede Anwendung verfügt über einen eigenen Standardwert BufferedGraphicsContext , der alle Standardpuffer für diese Anwendung verwaltet. Sie können einen Verweis auf diese Instanz abrufen, indem Sie die Current.

So rufen Sie einen Verweis auf den standardmäßigen BufferedGraphicsContext ab

  • Legen Sie die Current Eigenschaft fest, wie im folgenden Codebeispiel gezeigt.

    BufferedGraphicsContext myContext;
    myContext = BufferedGraphicsManager.Current;
    
    Dim myContext As BufferedGraphicsContext
    myContext = BufferedGraphicsManager.Current
    
    

    Hinweis

    Sie müssen die Dispose Methode auf den BufferedGraphicsContext Verweis nicht aufrufen, den Sie von der BufferedGraphicsManager Klasse erhalten. Das BufferedGraphicsManager behandelt alle Speicherzuweisungen und -verteilungen für Standardinstanzen BufferedGraphicsContext .

    Für grafisch intensive Anwendungen wie Animationen können Sie manchmal die Leistung verbessern, indem Sie eine dedizierte BufferedGraphicsContext anstelle der BufferedGraphicsContext verwenden, die von BufferedGraphicsManager bereitgestellt wird. Auf diese Weise können Sie Grafikpuffer einzeln erstellen und verwalten, ohne dass der Leistungsaufwand für die Verwaltung aller anderen gepufferten Grafiken, die Ihrer Anwendung zugeordnet sind, entstehen, obwohl der von der Anwendung verbrauchte Arbeitsspeicher größer ist.

So erstellen Sie einen dedizierten BufferedGraphicsContext

  • Deklarieren und erstellen Sie eine neue Instanz der BufferedGraphicsContext Klasse, wie im folgenden Codebeispiel gezeigt.

    BufferedGraphicsContext myContext;
    myContext = new BufferedGraphicsContext();
    // Insert code to create graphics here.
    // On a non-default BufferedGraphicsContext instance, you should always
    // call Dispose when finished.
    myContext.Dispose();
    
    Dim myContext As BufferedGraphicsContext
    myContext = New BufferedGraphicsContext
    ' Insert code to create graphics here.
    ' On a nondefault BufferedGraphicsContext instance, you should always 
    ' call Dispose when finished.
    myContext.Dispose()
    
    

Siehe auch