Porady: 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 poszczególnych buforów graficznych i zarządzanie nimi jest klasą BufferedGraphicsContext . Każda aplikacja ma własną wartość domyślną BufferedGraphicsContext , która zarządza wszystkimi domyślnymi podwójnym buforowaniem dla tej aplikacji. Odwołanie do tego wystąpienia można pobrać, wywołując element 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
Nie trzeba wywoływać
Dispose
metody w odwołaniu BufferedGraphicsContext otrzymaną BufferedGraphicsManager z klasy . 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ść przy użyciu dedykowanego BufferedGraphicsContextBufferedGraphicsContext zamiast udostępnionego przez program BufferedGraphicsManager. Dzięki temu można tworzyć bufory graficzne i zarządzać nimi indywidualnie, bez ponoszenia obciążenia związanego z wydajnością zarządzania całą drugą buforowaną grafiką skojarzona z 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 też
.NET Desktop feedback