Procedura: gestire manualmente le immagini memorizzate 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 BufferedGraphicsContext classe . Ogni applicazione ha un proprio valore predefinito BufferedGraphicsContext che gestisce tutto il doppio buffer predefinito per tale applicazione. È possibile recuperare un riferimento a questa istanza chiamando .Current
Per ottenere un riferimento all'oggetto BufferedGraphicsContext predefinito
Impostare la Current proprietà , come illustrato nell'esempio di codice seguente.
BufferedGraphicsContext myContext; myContext = BufferedGraphicsManager.Current;
Dim myContext As BufferedGraphicsContext myContext = BufferedGraphicsManager.Current
Nota
Non è necessario chiamare il
Dispose
metodo sul BufferedGraphicsContext riferimento ricevuto dalla BufferedGraphicsManager classe . BufferedGraphicsManager Gestisce tutte le allocazioni di memoria e la distribuzione per le istanze predefiniteBufferedGraphicsContext.Per applicazioni a elevato utilizzo grafico, ad esempio l'animazione, a volte è possibile migliorare le prestazioni usando un oggetto dedicato BufferedGraphicsContext anziché quello BufferedGraphicsContext fornito da 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 BufferedGraphicsContext classe , 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()
Vedi anche
.NET Desktop feedback