Поделиться через


Практическое руководство. Управление буферизацией графики

Обновлен: Ноябрь 2007

В более сложных случаях буферизации можно воспользоваться классом .NET Framework, чтобы реализовать собственную логику двойной буферизации. За выделение отдельных буферов графики и управление ими отвечает класс BufferedGraphicsContext. У каждого приложения есть собственный контекст BufferedGraphicsContext по умолчанию, который управляет всей двойной буферизацией по умолчанию для данного приложения. Ссылку на этот экземпляр можно получить, вызвав метод Current.

Получение ссылки на объект BufferedGraphicsContext по умолчанию

  • Установите свойство Current, как показано в следующем примере кода.

    Dim myContext As BufferedGraphicsContext
    myContext = BufferedGraphicsManager.Current
    
    
    BufferedGraphicsContext myContext;
    myContext = BufferedGraphicsManager.Current;
    
    tdk2485d.alert_note(ru-ru,VS.90).gifПримечание.

    Не нужно вызывать метод Dispose по ссылке BufferedGraphicsContext, полученной у класса BufferedGraphicsManager. Объект BufferedGraphicsManager обрабатывает все выделение и распределение памяти для экземпляров BufferedGraphicsContext по умолчанию.

    В приложениях, активно использующих графические возможности, например для показа анимации, бывает можно повысить производительность за счет использования выделенного объекта BufferedGraphicsContext вместо объекта BufferedGraphicsContext, предоставляемого классом BufferedGraphicsManager. Это дает возможность создавать графические буферы и управлять ими по отдельности, не снижая производительность за счет управления остальными графическими буферами, связанными с приложениями. Но объем потребляемой приложением памяти в этом случае возрастет.

Создание выделенного объекта BufferedGraphicsContext

  • Объявите и создайте экземпляр класса BufferedGraphicsContext, как это показано в следующем примере кода.

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

См. также

Задачи

Практическое руководство. Визуализация буферизированной графики вручную

Основные понятия

Двойная буферизация графики

Ссылки

BufferedGraphicsContext