¿Cómo dibujar efectivamente en el escritorio en C #?

Quiero dibujar directamente en el escritorio en C #. De buscar un poco, terminé usando un objeto Graphics del Desktop HDC (nulo). Luego, pinté normalmente usando este objeto Graphics.

El problema es que mis formas se pierden cuando se vuelve a dibujar cualquier parte de la pantalla. Probé un bucle While, pero en realidad termina dibujando tan rápido como la aplicación puede, lo cual no es la tasa de actualización del escritorio.

Normalmente, necesitaría poner mi código de dibujo en un evento "OnPaint", pero tal cosa no existe para el escritorio.

¿Cómo lo haría?

Código de ejemplo:https://stackoverflow.com/questions/1536141/how-to-draw-directly-on-the-windows-desktop-c

Respuestas a la pregunta(4)

Su respuesta a la pregunta