Fehlermeldung: "DependencySource" muss in demselben Thread wie "DependencyObject" erstellt werden."

  • WPF MVVM
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von kafffee.

    Fehlermeldung: "DependencySource" muss in demselben Thread wie "DependencyObject" erstellt werden."

    Hi an alle :)

    Ich hab ein kleines Threading-Problem, bei dem ich nicht meht weiter weiss:

    Und zwar bekomme ich die Fehlermeldung:

    System.ArgumentException: ""DependencySource" muss in demselben Thread wie "DependencyObject" erstellt werden."
    Diese Ausnahme wurde ursprünglich von dieser Aufrufliste ausgelöst:
    [Externer Code]

    Was wohl von diesen Codestellen hervorgerufen wird:

    VB.NET-Quellcode

    1. Public Sub Abspielen_Execute(obj As Object)
    2. [...]
    3. SyncTrackEnd = New SYNCPROC(AddressOf WennTrackBeendet) 'TrackBeendet wird aufgerufen wenn Track zu Ende
    4. Bass.BASS_ChannelSetSync(stream, BASSSync.BASS_SYNC_END, 0, SyncTrackEnd, IntPtr.Zero)
    5. [...]
    6. End Sub
    7. Private Sub WennTrackBeendet(syncHandle As Integer, channel As Integer, data As Integer, user As IntPtr)
    8. ThreadPool.QueueUserWorkItem((Sub(o)
    9. TrackBeendet()
    10. End Sub))
    11. End Sub
    12. Private Sub TrackBeendet()
    13. AbspielenIcon = "xyz"
    14. PlayToolTip = "Spiele den ausgewählten Musiktitel oder Radiostream ab..."
    15. IsPlaying = False
    16. AktuellesCoverArt = Nothing
    17. WFBild = Nothing
    18. Select Case Wiederholen
    19. Case WiederholModus.NichtWiederholen
    20. If PlaylistGewaehlterIndex = Playlist.Count - 1 Then
    21. Return
    22. Else
    23. NaechsterTrack_Execute(Nothing)
    24. End If
    25. Case WiederholModus.PlaylistWiederholen
    26. If PlaylistGewaehlterIndex = Playlist.Count - 1 Then
    27. PlaylistGewaehlterIndex = 0
    28. Else
    29. PlaylistGewaehlterIndex = PlaylistGewaehlterIndex + 1
    30. End If
    31. SpieleNeuenTitel_Execute(Nothing)
    32. Case WiederholModus.MusiktitelWiederholen
    33. SpieleNeuenTitel_Execute(Nothing)
    34. End Select
    35. End Sub


    Kann ich da an irgendeiner Stelle einen Dispatcher abfragen und dann statt ThreadPool verwenden? Oder wie würdet ihr beim Debuggen vorgehen?

    Gruss,

    kafffee