Im using System.Windows.Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Input, new Action(() => ...  for a wpf graphic refresh.
It works in my other function greatfully, but in my SQL delete function it wount be triggered/executed.
I tried it with System.Windows.Forms.Application.DoEvents(); but it wount do anything.
Set_Loading_Changed()
{
    System.Windows.Application.Current.Dispatcher.BeginInvoke(
        DispatcherPriority.Input, 
        new Action(() =>
        {
            if (BLoading)
            {
                DataGrid_Anzeige.IsEnabled = false;
                Mouse.OverrideCursor = System.Windows.Input.Cursors.Wait;
            }
            else
            {
                DataGrid_Anzeige.IsEnabled = true;
        
                Mouse.OverrideCursor = null;
            }
        }));
}
Btn_Remove()
{
    ...
    Set_Loading_Changed();
    using (OleDbConnection ODC = new OleDbConnection("..."))
    {
        foreach (var selectedRow in DataGrid_Anzeige.SelectedItems.OfType<DataRowView>())
        {
            sSQL_Statement = "...";
            ODC.Open();
            OleDbCommand ODCmd = new OleDbCommand(sSQL_Statement, ODC);
            ODCmd.ExecuteNonQuery();
            ODC.Close();
EDIT:
I insert the complete part of my Set_Load_Changed() function, hope you can get a clue with this informations.
Im using it primarly in my search Thread (Task.Factory.StartNew(() => { ... }));) so it must be the DispatcherPriority.Input.