Ausnahme bei BitmapFrame.Create (Fehler im WPF-Framework?)

8

Ich habe eine C # -Anwendung implementiert, die Frame-RGB mit einer Bildrate von 30 Bildern pro Sekunde empfängt.

Das Ereignis der Frameankunft wird mit diesem Code verwaltet:

%Vor%

mit der if-Bedingung verwalte ich nur einen von zwei Frames.

Wenn mein Code BitmapImage2Bitmap aufruft, erhalte ich diese Ausnahme:

Die Ausnahme in Englisch sollte sein:

%Vor%

Das Seltsame ist, dass meine Anwendung "gut" funktioniert, weil die Frames korrekt in die Ausgabedatei eingefügt wurden.

Ich habe dies gelesen , so scheint das Problem ein Fehler im WPF-Framework.

    
GVillani82 05.06.2013, 13:40
quelle

3 Antworten

15

Dies ist beabsichtigt. Eine Ausnahmebenachrichtigung der ersten Chance bedeutet nicht, dass ein Problem vorliegt. Der entsprechende Code in der Create () -Methode sieht folgendermaßen aus:

%Vor%

Mit anderen Worten, die Ausnahme wird erwartet und einfach geschluckt. Das ist sicherlich sehr ärgerlich, da diese Ausnahmen den Debugger stoppen, wenn Sie im Debug + Exception-Dialog das Kontrollkästchen Thrown aktiviert haben. Aber es ist sicherlich kein Fehler, das wurde absichtlich so geschrieben. Manchmal ist es viel billiger, einfach eine Ausnahme auszulösen und sie zu verschlucken, anstatt den Code zu schreiben, der die Ausnahme verhindert. Besonders wenn es unpraktisch wird, die Ausnahme zu vermeiden, der Fall mit Bitmaps, da es so viele verschiedene Arten von Bitmap-Typen gibt. Einige davon unterstützen keine Metadaten. Wo immer dies innerhalb des Framework-Codes geschieht, wird fast immer dafür gesorgt, dass der Code schneller wird . Geschwindigkeit ist auch ein wichtiger Aspekt des Codes.

Feature, kein Fehler. Deaktivieren Sie das Kontrollkästchen "Geworfen", damit diese Ausnahmen nicht angezeigt werden.

    
Hans Passant 10.06.2013, 15:28
quelle
7

Ich hoffe meine Antwort hilft Ihnen,

Ich hatte den gleichen Code, aber BitmapFrame.cs (bei PresetationCore.dll) auftreten Ausnahme, wenn wir BitmapFrame.Create (source) verwenden.

Also, ich benutze nur andere erstellen Funktion unter einem, die innere Funktion von BitmpaFrame.Create ist,

%Vor%

Wir können dasselbe Ergebnis BitmapFrame.Create(source, null, null, null).

erhalten
  • in deinem Fall, %Code%

danke.

    
user3172292 08.01.2014 08:14
quelle
0

Mit .NET Framework 4.5 ausgeführt, musste ich die ähnliche Zeile im Microsoft SDK WPF Photo Viewer-Beispiel von

ändern %Vor%

bis

%Vor%

um die ConfigurationErrorsException zu vermeiden. Die Dinge scheinen unter der Haube zu treiben ...

    
user2359723 04.11.2014 21:23
quelle

Tags und Links