Практическое руководство. Управление буферизацией графики
В более сложных сценариях двойной буферизации классы .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 вместо BufferedGraphicsContext предоставленной BufferedGraphicsManager. Это позволяет создавать буферы графики и управлять ими по отдельности, не снижая производительность для управления другой связанной с приложением буферизованной графикой. Однако, в данном случае приложение будет потреблять больше памяти.
Создание выделенного 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