Dispatcher x;
x = Dispatcher.CurrentDispatcher;//取得当前工作线程
progressBar1.Minimum = 0;
progressBar1.Maximum = 100;
progressBar1.Value = 0;
new System.Threading.Thread(delegate()
{
for (int i = 0; i <= 100; i++)
{
x.BeginInvoke(new Action(() =>
{
progressBar1.Value = i;
}), DispatcherPriority.Normal);
i++;
Thread.Sleep(100);
}
}).Start();