Condividi tramite


Procedura: gestire manualmente le immagini memorizzate nel buffer

Aggiornamento: novembre 2007

Per scenari di buffering doppio più avanzati, è possibile utilizzare le classi di .NET Framework per implementare una logica di buffering doppio personalizzata. La classe responsabile per l'allocazione e la gestione dei singoli buffer grafici è la classe BufferedGraphicsContext. Ogni applicazione dispone di un proprio oggetto BufferedGraphicsContext predefinito che gestisce la totalità del buffering doppio predefinito per l'applicazione. È possibile recuperare un riferimento all'istanza chiamando la proprietà Current.

Per ottenere un riferimento a BufferedGraphicsContext predefinito

  • Impostare la proprietà Current, come illustrato nell'esempio di codice seguente.

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

    Non è necessario chiamare il metodo Dispose sul riferimento BufferedGraphicsContext ricevuto dalla classe BufferedGraphicsManager. L'oggetto BufferedGraphicsManager gestisce totalmente l'allocazione e la distribuzione della memoria per le istanze BufferedGraphicsContext predefinite.

    Per applicazioni a elevato contenuto grafico, ad esempio animazioni, è a volte possibile migliorare le prestazioni utilizzando un oggetto BufferedGraphicsContext anziché l'oggetto BufferedGraphicsContext fornito da BufferedGraphicsManager. Questo consente di creare e gestire singolarmente i buffer grafici, senza ottenere una riduzione delle prestazioni derivante dalla gestione di tutti gli altri buffer grafici associati all'applicazione, sebbene la memoria utilizzata dall'applicazione sia superiore.

Per creare un BufferedGraphicsContext dedicato

  • Dichiarare e creare una nuova istanza della classe BufferedGraphicsContext, come illustrato nell'esempio di codice seguente.

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

Vedere anche

Attività

Procedura: eseguire il rendering manuale di grafica memorizzata nel buffer

Concetti

Grafica a doppio buffer

Riferimenti

BufferedGraphicsContext