Я рассмотрел это далее, и асинхронный метод будет работать так же, как и следующий метод из MSDN.
В XAML:
<ProgressBar Width="100" Height="20" Name="progressBar1">
<ProgressBar.Triggers>
<EventTrigger RoutedEvent="ProgressBar.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="progressBar1" From="0" To="100" Duration="0:0:5" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ProgressBar.Triggers>
</ProgressBar>
В C #:
ProgressBar progbar = new ProgressBar();
progbar.IsIndeterminate = false;
progbar.Orientation = Orientation.Horizontal;
progbar.Width = 150;
progbar.Height = 15;
Duration duration = new Duration(TimeSpan.FromSeconds(10));
DoubleAnimation doubleanimation = new DoubleAnimation(100.0, duration);
progbar.BeginAnimation(ProgressBar.ValueProperty, doubleanimation);
Моя проблема заключалась в том, что я выполнял хранимую процедуру, когда хотел, чтобы индикатор выполнения выполнялся, и это задерживает процесс и, следовательно, делает индикатор выполнения немного мусором, даже когда он асинхронный.
Полагаю, другой возможностью было бы сделать действия хранимой процедуры асинхронными, как вы думаете, ребята?
Cheers,
SumGuy
Редактировать (17 мая 2010 г.)
Кажется, многие люди интересуются этим сообщением, поэтому я решил добавить это. Я нашел отличную статью, в которой очень подробно описывается асинхронная работа в WPF, а также немного полезных индикаторов выполнения:
http://www.codeproject.com/KB/WPF/AsynchronousWPF.aspx