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.