WPF - Cannot change a GUI property inside the OnChanged method (fired from FileSystemWatcher)

后端 未结 2 712
眼角桃花
眼角桃花 2020-12-21 02:14

I want to change a GUI property in the OnChanged method... (in actuality im trying to set an image source.. but used a button here for simplicity). This is called everytime

2条回答
  •  刺人心
    刺人心 (楼主)
    2020-12-21 02:28

    I'm guessing that the FileSystemWatcher is calling your event handler on another thread. Inside your event handler, use your application's Dispatcher to marshal it back to the UI thread:

    private void OnChanged(object source, FileSystemEventArgs e) {
        Application.Current.Dispatcher.BeginInvoke(new Action(() => DoSomethingOnUiThread()));
    }
    
    private void DoSomethingOnUiThread() {
        Test_Button.Width = 500;
    }
    

提交回复
热议问题