Ich habe eine FileSystemWatcher
und die dadurch ausgelösten Ereignisse, wenn Änderungen an einer überwachten Datei in einem anderen Thread als dem UI-Thread ausgelöst werden. Um zu vermeiden, und verkanten Spaß acess volation, ich bin versucht,Dispatcher.CurrentDispatcher.BeginInvoke wird nicht aufgerufen
public void RaisePathChanged(object sender, RenamedEventArgs e)
{
Dispatcher.CurrentDispatcher.BeginInvoke(new Action(() =>
{
// Some code to handle the file state change here.
}));
}
Dies kompiliert fein zu verwenden und die RaisePathChanged
wird gebrannt, wie es sein sollte. Der Code innerhalb des Delegaten Action(() => { /*Here*/ })
wird jedoch nie aufgerufen/aufgerufen, der Code wird nur übersprungen.
Warum wird der Code übersprungen, wie kann ich ihn beheben und ist dies der beste Weg, um sicherzustellen, dass Code auf dem Thread ausgeführt wird, der ihn in WPF erstellt hat?
Danke für Ihre Zeit.