Wie man mit einem blockierten Zwischenablage und andere Merkwürdigkeiten

Im Laufe der letzten paar Stunden habe ich schon das aufspüren einer Recht spezifischen Fehler mit der, die Auftritt, weil eine andere Anwendung die Zwischenablage öffnen. Im wesentlichen wie die Zwischenablage ist eine gemeinsame Ressource (wie pro "Warum hat meine freigegebene Zwischenablage nicht funktioniert?") und Sie versuchen, führen Sie

Clipboard.SetText(string)

oder

Clipboard.Clear().

Folgende exception geworfen wird:

System.- Laufzeit.InteropServices.ExternalException: Angeforderte Clipboard-Vorgang war nicht erfolgreich. 
System.Windows.Formen.Zwischenablage.ThrowIfFailed(Int32 hr) 
System.Windows.Formen.Zwischenablage.SetDataObject(Object data, Boolean copy, Int32 retryTimes, Int32 retryDelay) 
System.Windows.Formen.Zwischenablage.SetText(String text, TextDataFormat-format) 
System.Windows.Formen.Zwischenablage.SetText(String text) 

Meine erste Lösung war es, nach einer kurzen pause wiederholen, bis ich merkte, dass die Zwischenablage.SetDataObject Felder für die Anzahl von Zeiten und die Dauer der Verzögerung. .NET das default-Verhalten ist, um zu versuchen 10 mal mit 100 msec Verzögerung.

Gibt es eine Letzte Sache, festgestellt durch den Endbenutzer. Das ist, trotz der Ausnahme, die geworfen wird, der in die Zwischenablage kopieren-Betrieb noch funktioniert. Ich habe nicht in der Lage zu finden, weitere Informationen über warum dies sein mag.

Meine aktuelle Lösung für das Problem einfach stillschweigend zu ignorieren die Ausnahme... ist das wirklich der beste Weg?

Schreibe einen Kommentar