My code is something like this:
private void btnSave_Click(object sender, RoutedEventArgs e)
{
//...
//Code some data changes
//...
Task.Factory.StartNew(() => { this.Dispatcher.Invoke(() => ChangeSettings()) });
}
private void ChangeSettings()
{
this.Dispatcher.Invoke(() =>
{
window.IsEnabled = false;
//to see enabled/disabled changes
Thread.Sleep(1000);
someLabel.Content = "Something";
window.IsEnabled = true;
});
}
If I keep Task.Factory.StartNew in btnSave_Click event, I see the window change from disable to enable. But if I change Task to another Dispatcher.Invoke, the window don't get disable. Could someone explain me why? And the difference between Dispatcher.Invoke and Task. Thank you so much
EDIT: Scenario is: I want to update in background a second window from first window after somethings change.