C# ProgressBar赢得';t过一段时间后从另一个线程更新

C# ProgressBar赢得';t过一段时间后从另一个线程更新,c#,multithreading,user-interface,C#,Multithreading,User Interface,我正在尝试从另一个线程更新ProgressBar和TextBlock。我正在使用以下代码: this.Dispatcher.Invoke((Action)(() => { myProgressBar.SetValue(ProgressBar.ValueProperty, Convert.ToDouble(70)); myPopupText.Text = "BinaryFile s

我正在尝试从另一个线程更新ProgressBar和TextBlock。我正在使用以下代码:

this.Dispatcher.Invoke((Action)(() =>
                {
                    myProgressBar.SetValue(ProgressBar.ValueProperty, Convert.ToDouble(70));
                    myPopupText.Text = "BinaryFile succesfully created. Sending to deserialize";
                }));
这可以工作一段时间,但在执行一个需要10秒(大约)的句子后,如果我再次使用该代码(当然,使用不同的值),GUI将不会更新,ProgressBar和TextBlock也不会更新

我提到的句子与GUI无关。我错过什么了吗

编辑-更多代码 下面是更多的代码:

this.Dispatcher.Invoke((Action)(() =>
                {
                    myProgressBar.SetValue(ProgressBar.ValueProperty, Convert.ToDouble(70));
                    myPopupText.Text = "BinaryFile succesfully created. Sending to deserialize";
                }));
Thread.Sleep(1000);
lock (sLock)
                {
                    lSent = mCampaignDecryptor.SendAlCommandsToPrinter();
                }

            if (lSent)
            {
                this.Dispatcher.Invoke((Action)(() =>
                {
                    myProgressBar.SetValue(ProgressBar.ValueProperty, Convert.ToDouble(100));
                    myPopupText.Text = "The Campaign was succesfully downloaded";
                    Thread.Sleep(1000);
                    grdBar.Visibility = System.Windows.Visibility.Hidden;
                }));
            }
第一次GUI更新(这不是我代码中的第一次)起作用。第二个(那将是最后一个)没有


PS-lSent是正确的。

尝试使用
myProgressBar.ReportProgress(int)
method。或者每次调用此方法时设置不同的值=我没有使用BackgroundWorker。我确实设置了不同的值lol XD您能提供足够的代码来复制问题吗,尽可能短的代码段?