Procedura: gestire manualmente le immagini memorizzate nel buffer
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