Vorgehensweise: Manuelles Verwalten von gepufferten Grafiken

Bei anspruchsvolleren Szenarios mit doppelter Pufferung können Sie mithilfe der .NET Framework-Klassen Ihre eigene Logik für doppelte Pufferung implementieren. Diese Klasse, die für die Zuordnung und Verwaltung einzelner Grafikpuffer verantwortlich ist, ist die BufferedGraphicsContext-Klasse. Jede Anwendung besitzt ihre eigene BufferedGraphicsContext-Standardklasse, die alle standardmäßigen doppelten Pufferungen für diese Anwendung verwaltet. Sie können einen Verweis auf diese Instanz durch Aufrufen der Current-Eigenschaft abrufen.

So rufen Sie einen Verweis auf die Standardklasse BufferedGraphicsContext ab

  • Wie im folgenden Code dargestellt, legen Sie die Current-Eigenschaft fest.

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

    Hinweis

    Sie müssen die Methode Dispose nicht für den Verweis BufferedGraphicsContext aufrufen, den Sie von der BufferedGraphicsManager-Klasse erhalten. Die BufferedGraphicsManager-Klasse behandelt die gesamten Speicherzuweisungen und die Verteilungen für BufferedGraphicsContext-Standardinstanzen.

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

So erstellen Sie eine dedizierte BufferedGraphicsContext-Klasse

  • 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()
    
    

Weitere Informationen