Nasıl yapılır: Arabelleğe Alınan Grafikleri Elle Yönetme
Daha gelişmiş çift arabelleğe alma senaryoları için kendi çift arabelleğe alma mantığınızı uygulamak için .NET Framework sınıflarını kullanabilirsiniz. Tek tek grafik arabelleklerini ayırma ve yönetmeden sorumlu sınıf sınıfıdır BufferedGraphicsContext . Her uygulamanın, bu uygulama için varsayılan çift arabelleğin tümünü yöneten kendi BufferedGraphicsContext varsayılanı vardır. çağrısı Currentyaparak bu örneğe bir başvuru alabilirsiniz.
Varsayılan BufferedGraphicsContext başvurusu almak için
Current Aşağıdaki kod örneğinde gösterildiği gibi özelliğini ayarlayın.
BufferedGraphicsContext myContext; myContext = BufferedGraphicsManager.Current;
Dim myContext As BufferedGraphicsContext myContext = BufferedGraphicsManager.Current
Dekont
sınıfından
Dispose
aldığınız BufferedGraphicsManager başvuruda BufferedGraphicsContext yöntemini çağırmanız gerekmez. , BufferedGraphicsManager varsayılan BufferedGraphicsContext örnekler için tüm bellek ayırma ve dağıtımını işler.Animasyon gibi grafik yoğunluklu uygulamalar için, bazen tarafından BufferedGraphicsManagersağlanan yerine BufferedGraphicsContext ayrılmış BufferedGraphicsContext bir kullanarak performansı geliştirebilirsiniz. Bu, uygulama tarafından tüketilen bellek daha büyük olsa da, uygulamanızla ilişkili diğer tüm arabelleğe alınan grafikleri yönetmenin performans yükünü doğurmadan grafik arabelleklerini ayrı ayrı oluşturmanıza ve yönetmenize olanak tanır.
Ayrılmış BufferedGraphicsContext oluşturmak için
Aşağıdaki kod örneğinde gösterildiği gibi sınıfının yeni bir örneğini BufferedGraphicsContext 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()
Ayrıca bkz.
.NET Desktop feedback