如何:手动管理缓冲图形
对于更高级的双缓冲方案,可使用 .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()