Hey,
ich möchte einen Thread starten und abfangen, wenn der Thread fertig ist / seine Arbeit erledigt hat.
Das Ganze hängt mit einem ICommand zusammen, der dann das CanExecuteChanged-Event aufrufen soll.
Mein Lösungsansatz ist folgender:
Mein RunCommand ist ein normaler Command aus dem MVVM-Pattern.
Spoiler anzeigen
Allerdings greife ich dann von einen Thread auf einen anderen zu und deshalb tritt folgender Fehler auf:
![](/img-proxy-lite.php?url=http://images.devs-on.net/Thumb/jYchlE2wHTCCCiDE-GanzenBildschir.png)
Habe es auch schon so versucht, funktioniert aber auch nicht. Wende ich
Es wäre sehr nett, wenn ihr mir hier weiterhelfen könntet.![:)](https://www.vb-paradise.de/wcf/images/smilies/smile.png)
Viele Grüße,
Trudi
ich möchte einen Thread starten und abfangen, wenn der Thread fertig ist / seine Arbeit erledigt hat.
Das Ganze hängt mit einem ICommand zusammen, der dann das CanExecuteChanged-Event aufrufen soll.
Mein Lösungsansatz ist folgender:
Mein RunCommand ist ein normaler Command aus dem MVVM-Pattern.
C#-Quellcode
- public class ActionCommand : ICommand
- {
- private readonly Action<object> _executeHandler;
- private readonly Func<object, bool> _canExecuteHandler;
- public ActionCommand(Action<object> execute, Func<object, bool> canExecute)
- {
- if (execute == null)
- {
- throw new ArgumentNullException("execute cannot be null");
- }
- _executeHandler = execute;
- _canExecuteHandler = canExecute;
- }
- public event EventHandler CanExecuteChanged;
- public void Execute(object parameter)
- {
- _executeHandler(parameter);
- }
- public bool CanExecute(object parameter)
- {
- if (_canExecuteHandler == null)
- {
- return true;
- }
- return _canExecuteHandler(parameter);
- }
- public void RaiseCanExecuteChanged()
- {
- var handler = CanExecuteChanged;
- if (handler != null)
- {
- handler.Invoke(this, EventArgs.Empty);
- }
- }
- }
Allerdings greife ich dann von einen Thread auf einen anderen zu und deshalb tritt folgender Fehler auf:
![](/img-proxy-lite.php?url=http://images.devs-on.net/Thumb/jYchlE2wHTCCCiDE-GanzenBildschir.png)
Habe es auch schon so versucht, funktioniert aber auch nicht. Wende ich
lock
falsch an?Es wäre sehr nett, wenn ihr mir hier weiterhelfen könntet.
![:)](https://www.vb-paradise.de/wcf/images/smilies/smile.png)
Viele Grüße,
Trudi