ich eine WPF-Anwendung, die eine Komponente verwendet, die eine Bitmap meiner Anwendung sendet, sobald sie verfügbar werden, erhalte ich diese Bitmaps in einem Delegierten ich auf diese Komponente zu übergeben.100% reaktions UI in WPF
Ich habe einen neuen Thread für diesen Prozess erstellt und es funktioniert sehr gut, die Bitmaps kommt als MemoryStream und ich erstelle nur das BitmapSource-Objekt aus diesem Stream innerhalb einer Dispatcher.BeginInvoke
Methodenaufruf. Nachdem ich das BitmapSource-Objekt habe, füge ich sie zu einem StackPanel hinzu, damit der Benutzer eine Reihe von Bildern sehen kann, die zum Arbeiten verfügbar sind. So weit so gut ...
Das Problem ist, dass diese Bitmaps recht groß sind, wie 3000x2000 + Pixel, und es dauert etwa 50 ~ ms, um diese Bitmaps zu erstellen und der Warteschlange hinzuzufügen, und wenn dieser Code ausgeführt wird Innerhalb des BeginInvoke-Aufrufs blockiert es die Benutzeroberfläche für diese Zeit und verursacht ein sehr störendes Verhalten. (Um dies zu reproduzieren, rufen Sie einfach alle 5 Sekunden Thread.Sleep(50)
auf).
Wie kann ich dieses Problem beheben, damit der Benutzer immer ansprechbar ist?
danke!
I zweiter Der zweite Vorschlag (Thread). –