如何:手動管理已緩衝的圖形

對於更進階的雙緩衝案例,您可以使用 .NET Framework 類別來實作您自己的雙緩衝邏輯。 負責配置和管理個別圖形緩衝區的類別是 BufferedGraphicsContext 類別。 每個應用程式都有自己的預設 BufferedGraphicsContext,用於管理該應用程式的所有預設雙緩衝。 您可以透過呼叫 Current 來擷取對此實例的參考。

若要取得對預設 BufferedGraphicsContext 的參考

  • 設定 Current 屬性,如下列程式碼範例所示。

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

    注意

    您無需對您從 BufferedGraphicsManager 類別收到的 BufferedGraphicsContext 參考呼叫 Dispose 方法。 BufferedGraphicsManager 會處理預設 BufferedGraphicsContext 實例的所有記憶體配置和散發。

    對於動畫等圖形密集型應用程序,您有時可以透過使用專用的 BufferedGraphicsContext (而不是 BufferedGraphicsManager 所提供的 BufferedGraphicsContext) 來提高效能。 這可讓您個別建立和管理圖形緩衝區,而不會造成管理與應用程式相關聯的所有其他緩衝圖形的效能額外負荷,儘管應用程式所消耗的記憶體量會更大。

若要建立專用的 BufferedGraphicsContext

  • 宣告並建立 BufferedGraphicsContext 類別的新實例,如下列程式碼範例所示。

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

另請參閱