Nasıl yapılır: Arabelleğe Alınan Grafikleri Elle Yönetme
daha gelişmiş çift arabelleğe alma senaryolarında, kendi çift arabelleğe alma mantığınızı uygulamak için .NET Framework sınıflarını kullanabilirsiniz. Tek grafik arabelleklerinin dağıtılmasından ve yönetiminden sorumlu sınıf, BufferedGraphicsContext sınıftır. Her uygulamanın, BufferedGraphicsContext Bu uygulama için varsayılan iki arabelleğe alma işleminin tümünü yöneten kendi varsayılanı vardır. Çağırarak, bu örneğe bir başvuru alabilirsiniz Current .
Varsayılan BufferedGraphicsContext öğesine bir başvuru almak için
CurrentAşağıdaki kod örneğinde gösterildiği gibi özelliği ayarlayın.
BufferedGraphicsContext myContext; myContext = BufferedGraphicsManager.Current;Dim myContext As BufferedGraphicsContext myContext = BufferedGraphicsManager.CurrentNot
DisposeSınıfından aldığınız başvuru üzerinde yöntemini çağırmanız gerekmez BufferedGraphicsContextBufferedGraphicsManager . , BufferedGraphicsManager Varsayılan örnekler için tüm bellek ayırmayı ve dağıtımını işler BufferedGraphicsContext .Animasyon gibi grafiksel olarak yoğun uygulamalarda, bazen BufferedGraphicsContext tarafından sağlanması yerine adanmış bir kullanarak performansı artırabilirsiniz BufferedGraphicsContextBufferedGraphicsManager . Bu, uygulama tarafından tüketilen bellek daha büyük olsa da, uygulama ile ilişkili diğer tüm arabelleğe alınmış grafiklerin yönetilmesi için performans yükünü tek tek oluşturup yönetmenize olanak sağlar.
Adanmış bir BufferedGraphicsContext oluşturmak için
BufferedGraphicsContextAşağıdaki kod örneğinde gösterildiği gibi, sınıfının yeni bir örneğini bildirin ve oluşturun.
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()