title: C# Which is the fastest way to take a screen shot?
body: <p>I am implementing a feature that will take screen shot repeatedly and output dirty rectangles between 2 different shots then send re-draw the screen in a window.</p>
  
  <p>I can get it running between 20~30FPS currently. It is already acceptable. But then I made a benchmark and measured its performance. Found out that the <code>Graphics.CopyFromScreen()</code> takes up to 50% of the processing time. (Yep. Even in the worst case, it still takes longer than find all the dirty rectangles) Then I used native API implementation <code>BitBlt()</code> and get no improvement.</p>
  
  <p>I know there may not be any practical reasons to make it any faster than 30FPS in this case. I am just wondering, is there any faster way to take a screen shot? </p>
  
  <p>Thanks.</p>