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.