Procedimiento para administrar manualmente gráficos almacenados en búfer

En el caso de escenarios de almacenamiento en doble búfer más avanzados, puede usar las clases de .NET Framework para implementar su propia lógica de almacenamiento en doble búfer. La clase responsable de asignar y administrar los distintos búferes de gráficos es BufferedGraphicsContext. Cada aplicación tiene su propia instancia de BufferedGraphicsContext que administra todo el almacenamiento en doble búfer predeterminado para dicha aplicación. Puede recuperar una referencia a esta instancia si llama a la propiedad Current.

Para obtener una referencia a la instancia de BufferedGraphicsContext predeterminada

  • Establezca la propiedad Current, como se muestra en el ejemplo de código siguiente.

    BufferedGraphicsContext myContext;
    myContext = BufferedGraphicsManager.Current;
    
    Dim myContext As BufferedGraphicsContext
    myContext = BufferedGraphicsManager.Current
    
    

    Nota:

    No es necesario llamar al método Dispose en la referencia BufferedGraphicsContext que recibe de la clase BufferedGraphicsManager. BufferedGraphicsManager controla toda la asignación y distribución de memoria para las instancias de BufferedGraphicsContext predeterminadas.

    Para aplicaciones con elevados requisitos gráficos, como la animación, a veces puede mejorar el rendimiento si usa una instancia de BufferedGraphicsContext dedicada en lugar de la instancia de BufferedGraphicsContext que proporciona BufferedGraphicsManager. Esto le permite crear y administrar búferes de gráficos individualmente, sin incurrir en la sobrecarga de rendimiento de administrar todos los demás gráficos almacenados en búfer asociados a la aplicación, aunque la memoria que consume la aplicación será mayor.

Para crear una instancia de BufferedGraphicsContext dedicada

  • Declare y cree una instancia de la clase BufferedGraphicsContext, como se muestra en el ejemplo de código siguiente.

    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()
    
    

Consulte también