55 Stimmen

Umgang mit einer blockierten Zwischenablage und anderen Ungereimtheiten

Im Laufe der letzten Stunden habe ich einen ganz bestimmten Fehler aufgespürt, der auftritt, wenn eine andere Anwendung die Zwischenablage geöffnet hat. Im Wesentlichen ist die Zwischenablage eine gemeinsam genutzte Ressource (gemäß "Warum funktioniert meine gemeinsame Zwischenablage nicht?" ) und Sie versuchen, die

Clipboard.SetText(string)

ou

Clipboard.Clear().

Die folgende Ausnahme wird ausgelöst:

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)

Meine ursprüngliche Lösung war, es nach einer kurzen Pause erneut zu versuchen, bis ich merkte, dass Clipboard.SetDataObject Felder für die Anzahl der Versuche und die Länge der Verzögerung hat. Das Standardverhalten von .NET ist, es 10 Mal mit einer Verzögerung von 100 msec zu versuchen.

Ein letzter Punkt wurde von den Endnutzern angemerkt. Obwohl die Ausnahme ausgelöst wurde, funktioniert das Kopieren in die Zwischenablage. Ich konnte keine weiteren Informationen darüber finden, woran das liegen könnte.

Meine derzeitige Lösung für das Problem ist nur stillschweigend ignorieren die Ausnahme ... ist dies wirklich der beste Weg?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X