C#获取快速屏幕截图或应用程序框架

C#获取快速屏幕截图或应用程序框架,c#,screenshot,frame,C#,Screenshot,Frame,我需要快速从游戏中获取图像。我尝试使用以下简单的屏幕截图: Rectangle bounds = Screen.GetBounds(Point.Empty); using (Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height)) { using (Graphics g = Graphics.FromImage(bitmap)) {

我需要快速从游戏中获取图像。我尝试使用以下简单的屏幕截图:

        Rectangle bounds = Screen.GetBounds(Point.Empty);
        using (Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height))
        {
            using (Graphics g = Graphics.FromImage(bitmap))
            {
                g.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size);
            }
            bitmap.Save("Screen.bmp");
        }  
但我不知道为什么如果我得到屏幕截图,我可以在10秒后得到另一个。。。 需要一种拍摄更快图像的方法。
游戏框架会更好。

< P>我会考虑把这个线程关闭。

当项目进入位图堆栈时,将位图保存在内存和单独的线程中,您可以一次弹出一个位图并保存到磁盘

这样,您可以继续拍摄任意数量的屏幕截图

避免这一行

using(Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height))
每次通话时都要保存屏幕截图。
只需将它初始化为全局变量并查看魔术。

< P>如果你想抓取一个以上的截图,你可能需要考虑一个“FrimeCnter”并将其添加到每个循环中。

当前瓶颈是什么?它是挂在拷贝上,还是保存?也许你可以以后再存钱请尝试使用Task.Factory.StartNew异步执行save,这是提高性能的一种方法