Procedura: Gestire manualmente la grafica memorizzata nel buffer
Per scenari di doppio buffering più avanzati, è possibile usare le classi .NET Framework per implementare la propria logica di doppio buffering. La classe responsabile dell'allocazione e della gestione dei singoli buffer grafici è la classe BufferedGraphicsContext. Ogni applicazione ha un proprio BufferedGraphicsContext predefinito che gestisce tutto il doppio buffer predefinito per tale applicazione. È possibile recuperare un riferimento a questa istanza chiamando il Current.
Per ottenere un riferimento al contesto grafico bufferizzato predefinito
Impostare la proprietà Current, come illustrato nell'esempio di codice seguente.
BufferedGraphicsContext myContext; myContext = BufferedGraphicsManager.Current;
Dim myContext As BufferedGraphicsContext myContext = BufferedGraphicsManager.Current
Nota
Non è necessario invocare il metodo
Dispose
sul riferimento BufferedGraphicsContext che si riceve dalla classe BufferedGraphicsManager. Il BufferedGraphicsManager gestisce tutte le allocazioni di memoria e la distribuzione per le istanze predefinite di BufferedGraphicsContext.Per applicazioni a elevato utilizzo grafico, ad esempio l'animazione, a volte è possibile migliorare le prestazioni usando un BufferedGraphicsContext dedicato anziché il BufferedGraphicsContext fornito dalla BufferedGraphicsManager. In questo modo è possibile creare e gestire i buffer grafici singolarmente, senza incorrere nel sovraccarico delle prestazioni di gestione di tutte le altre immagini memorizzate nel buffer associate all'applicazione, anche se la memoria utilizzata dall'applicazione sarà maggiore.
Per creare un oggetto BufferedGraphicsContext dedicato
Dichiarare e creare una nuova istanza della classe BufferedGraphicsContext, come illustrato nell'esempio di codice seguente.
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()
Vedere anche
.NET Desktop feedback