Como efetivamente desenhar na área de trabalho em c #?

Eu quero desenhar diretamente na área de trabalho em c #. Da pesquisa um pouco, acabei usando um objeto Graphics do Desktop HDC (null). Então, eu pintei normalmente usando esse objeto Graphics.

O problema é que minhas formas se perdem quando qualquer parte da tela é redesenhada. Eu tentei um loop While, mas na verdade acabou desenhando tão rápido quanto o aplicativo pode, o que não é a taxa de atualização da área de trabalho.

Normalmente, eu precisaria colocar meu código de desenho em um evento "OnPaint", mas isso não existe para a área de trabalho.

Como eu faria isso?

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

questionAnswers(4)

yourAnswerToTheQuestion