Hallo Leute.
Das Programm soll Fotos schneller und daher im Hintergrund laden. Man kann die Fotos per Button weiterschalten. Es existiert eine Collection mit breits geladenen BitmapImages, die dann einem Property zugewiesen werden. Das funktioniert auch alles. Jetzt der Versuch das nächste Bild für die als Puffer dienenden Collection asynchron zu laden. Leider scheitere ich seit Tagen daran, weil die Daten zw. den Threads nicht ausgetauscht werden.
Dieser Teil wird beim Weiterschalten in einer asynchronen Sub ausgeführt.
und hier die aufgerufene Methode.
Wenn das so geladene Foto an das Property übergeben wird erscheint folgender Fehler:
System.ArgumentException: ""DependencySource" muss in demselben Thread wie "DependencyObject" erstellt werden."
Ich habe Stunden damit zugebracht die BitmapImage irgendwie in den aufrufenden Thread zu bekommen, aber bisher alles ohne Erfolg.
Den Ladevorgang durch DecodePixelHeight zu beschleunigen ist keine Option, weil die Fotos auch in 100% Ansicht gebraucht werden.
Wie lässt sich der Ladevorgang in den Speicher also asynchron erledigen. Oder kann man die JPG asynchron in den Speicher laden und das dann in der aufrufenedne Sub dem BitmapImage als Stream zuweisen?
Gruß
eddi
Thema verschoben; Das Thema wird automatisch dort erstellt, wo man sich befindet, wenn man auf [✱ Neues Thema] klickt. ~VaporiZed
Das Programm soll Fotos schneller und daher im Hintergrund laden. Man kann die Fotos per Button weiterschalten. Es existiert eine Collection mit breits geladenen BitmapImages, die dann einem Property zugewiesen werden. Das funktioniert auch alles. Jetzt der Versuch das nächste Bild für die als Puffer dienenden Collection asynchron zu laden. Leider scheitere ich seit Tagen daran, weil die Daten zw. den Threads nicht ausgetauscht werden.
Dieser Teil wird beim Weiterschalten in einer asynchronen Sub ausgeführt.
und hier die aufgerufene Methode.
VB.NET-Quellcode
- Private Function Laden(Index As Integer) As Foto_Speicher_Klasse
- Dim FS_T = New IO.FileStream(Bildliste(Index).FullName, IO.FileMode.Open, IO.FileAccess.Read)
- Dim BitmapImage_T = New BitmapImage
- BitmapImage_T.BeginInit()
- BitmapImage_T.StreamSource = FS_T
- BitmapImage_T.CacheOption = BitmapCacheOption.OnLoad
- BitmapImage_T.EndInit()
- FS_T.Dispose()
- Return New Foto_Speicher_Klasse With {.Foto = BitmapImage_T}
- End Function
Wenn das so geladene Foto an das Property übergeben wird erscheint folgender Fehler:
System.ArgumentException: ""DependencySource" muss in demselben Thread wie "DependencyObject" erstellt werden."
Ich habe Stunden damit zugebracht die BitmapImage irgendwie in den aufrufenden Thread zu bekommen, aber bisher alles ohne Erfolg.
Den Ladevorgang durch DecodePixelHeight zu beschleunigen ist keine Option, weil die Fotos auch in 100% Ansicht gebraucht werden.
Wie lässt sich der Ladevorgang in den Speicher also asynchron erledigen. Oder kann man die JPG asynchron in den Speicher laden und das dann in der aufrufenedne Sub dem BitmapImage als Stream zuweisen?
Gruß
eddi
Thema verschoben; Das Thema wird automatisch dort erstellt, wo man sich befindet, wenn man auf [✱ Neues Thema] klickt. ~VaporiZed
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()