Udostępnij przez


Instrukcje: ręczne zarządzanie buforowaną grafiką

W przypadku bardziej zaawansowanych scenariuszy podwójnego buforowania można użyć klas programu .NET Framework do zaimplementowania własnej logiki podwójnego buforowania. Klasa odpowiedzialna za przydzielanie i zarządzanie poszczególnymi buforami graficznymi to klasa BufferedGraphicsContext. Każda aplikacja ma własną domyślną BufferedGraphicsContext, która zarządza całym domyślnym podwójnym buforowaniem dla tej aplikacji. Odwołanie do tego wystąpienia można uzyskać, wywołując metodę Current.

Aby uzyskać odwołanie do domyślnego elementu BufferedGraphicsContext

  • Current Ustaw właściwość, jak pokazano w poniższym przykładzie kodu.

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

    Uwaga / Notatka

    Nie trzeba wywoływać metody Dispose na odwołaniu BufferedGraphicsContext, które otrzymujesz z klasy BufferedGraphicsManager. Moduł BufferedGraphicsManager obsługuje całą alokację pamięci i dystrybucję dla wystąpień domyślnych BufferedGraphicsContext .

    W przypadku aplikacji intensywnie korzystających z grafiki, takich jak animacja, czasami można zwiększyć wydajność, używając dedykowanej BufferedGraphicsContext, zamiast BufferedGraphicsContext udostępnionego przez BufferedGraphicsManager. Daje to możliwość tworzenia i zarządzania buforami graficznymi indywidualnie, bez obciążenia wydajnościowego zarządzania wszystkimi innymi buforowanymi grafikami związanymi z twoją aplikacją, chociaż pamięć zużywana przez aplikację będzie większa.

Aby utworzyć dedykowany element BufferedGraphicsContext

  • Zadeklaruj i utwórz nowe wystąpienie BufferedGraphicsContext klasy, jak pokazano w poniższym przykładzie kodu.

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

Zobacz także