Gewusst wie: Manuelles Verwalten von gepufferten Grafiken

Für anspruchsvollere Szenarien mit doppelter Pufferung können Sie die .NET Framework-Klassen verwenden, um Ihre eigene doppelte Pufferungslogik 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 standardmäßigen BufferedGraphicsContext, der die gesamte standardmäßige doppelte Pufferung für die Anwendung verwaltet. Sie können einen Verweis auf diese Instanz abrufen, indem Sie Current aufrufen.

So erhalten Sie einen Verweis auf den standardmäßigen BufferedGraphicsContext

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

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

    Tipp

    Sie müssen nicht die Dispose-Methode für den BufferedGraphicsContext-Verweis aufrufen, den Sie von der BufferedGraphicsManager-Klasse abrufen. Der BufferedGraphicsManager übernimmt die gesamte Speicherbelegung und -verteilung für standardmäßige BufferedGraphicsContext-Instanzen.

    Bei grafisch anspruchsvollen Anwendungen wie Animationen können Sie manchmal die Leistung verbessern, indem Sie einen dedizierten BufferedGraphicsContext anstelle des BufferedGraphicsContext verwenden, der vom BufferedGraphicsManager bereitgestellt wird. Dadurch können Sie Grafikpuffer einzeln erstellen und verwalten, ohne dass die Verwaltung aller anderen gepufferten Anwendungsgrafiken die Leistung beeinträchtigt. Der von der Anwendung beanspruchte Arbeitsspeicher nimmt jedoch zu.

So erstellen Sie einen dedizierten BufferedGraphicsContext

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

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

Siehe auch

Aufgaben

Gewusst wie: Manuelles Rendern von gepufferten Grafiken

Referenz

BufferedGraphicsContext

Konzepte

Doppelt gepufferte Grafiken