Cómo manejar un portapapeles bloqueado y otras rarezas

Durante el transcurso de las últimas dos horas, he estado rastreando un error bastante específico que ocurre porque otra aplicación tiene el portapapeles abierto. Esencialmente, ya que el portapapeles es un recurso compartido (según "¿Por qué mi portapapeles compartido no funciona?") e intentas ejecutar

Clipboard.SetText(string)

Clipboard.Clear().

Se lanza la siguiente excepción:

System.Runtime.InteropServices.ExternalException: Requested Clipboard operation did not succeed. 
    at System.Windows.Forms.Clipboard.ThrowIfFailed(Int32 hr)
    at System.Windows.Forms.Clipboard.SetDataObject(Object data, Boolean copy, Int32 retryTimes, Int32 retryDelay)
    at System.Windows.Forms.Clipboard.SetText(String text, TextDataFormat format)
    at System.Windows.Forms.Clipboard.SetText(String text)

Mi solución inicial fue volver a intentar después de una breve pausa, hasta que me di cuenta de que Clipboard.SetDataObject tiene campos para la cantidad de veces y la duración del retraso. El comportamiento predeterminado de .NET es intentar 10 veces con un retraso de 100 ms.

Hay una última cosa que ha notado el usuario final. Es decir, a pesar de la excepción lanzada, la operación de copiar al portapapeles todavía funciona. No he podido encontrar más información sobre por qué esto puede ser.

Mi solución actual al problema es ignorar silenciosamente la excepción ... ¿es esta realmente la mejor manera?

Respuestas a la pregunta(16)

Su respuesta a la pregunta