Практическое руководство. Управление буферизованной графикой вручную
Для более сложных сценариев двойного буферизации можно использовать классы .NET Framework для реализации собственной логики двойного буферизации. Класс, ответственный за выделение и управление отдельными графическими буферами, является классом BufferedGraphicsContext. Каждое приложение имеет собственный BufferedGraphicsContext по умолчанию, который управляет всей двойной буферизацией по умолчанию для этого приложения. Вы можете получить ссылку на этот экземпляр, вызвав Current.
Чтобы получить ссылку на контекст BufferedGraphicsContext по умолчанию
Задайте свойство Current, как показано в следующем примере кода.
BufferedGraphicsContext myContext; myContext = BufferedGraphicsManager.Current;
Dim myContext As BufferedGraphicsContext myContext = BufferedGraphicsManager.Current
Заметка
Не нужно вызывать метод
Dispose
на ссылке BufferedGraphicsContext, которую вы получаете из класса BufferedGraphicsManager. BufferedGraphicsManager управляет всеми процессами выделения памяти и распределения для экземпляров BufferedGraphicsContext по умолчанию.Для графически нагруженных приложений, таких как анимация, иногда можно повысить производительность, используя выделенный BufferedGraphicsContext вместо предоставленного BufferedGraphicsContextBufferedGraphicsManager. Это позволяет создавать буферы графики и управлять ими по отдельности, не создавая затраты на производительность для управления всеми остальными буферизованной графикой, связанной с приложением, хотя память, потребляемая приложением, будет больше.
Чтобы создать выделенный BufferedGraphicsContext
Объявите и создайте новый экземпляр класса BufferedGraphicsContext, как показано в следующем примере кода.
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()
См. также
.NET Desktop feedback