What's the best way to drive an animation?
<p>I have a form with a panel in which I want to display an animated 3D scene using XNA. What's the best way to have this panel continuously repainted?</p>

<p>I'm currently thinking about adding a <code>System.Windows.Forms.Timer</code> to the form and adding an event handler to <code>Timer.Tick</code> which updates my 3D scene and calls <code>Invalidate</code> on the panel.</p>

<p>Is there a better way to do this? The rendering isn't critical, I don't want the rest of the form to become inresponsive, but on the other hand if there's time available I would like the rendering to happen at the refresh rate of the monitor.</p>
