【发布时间】:2021-02-28 18:43:32
【问题描述】:
我正在尝试显示从其他来源获取数据的繁忙指示器。
工作流程
- 忙指示符在进程启动时启动
- 正在获取数据。
- 停止忙碌指示器。
示例代码
Xaml
<busyIndicator:BusyIndicator x:Name="BusyIndicator" IsBusy="False" >
<Grid>
<Button x:Name="showindicator" Height="100" Width="200" Content="ShowIndicator" Grid.Row="1" Click="Showindicator_Click"/>
</Grid>
</busyIndicator:BusyIndicator>
C#
private async void Showindicator_Click(object sender, RoutedEventArgs e)
{
BusyIndicator.IsBusy = true;
await Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
{
// In my original code, fetching data here
for (int i = 0; i < 5; i++)
{
Console.WriteLine(i);
Thread.Sleep(1000);
}
}));
BusyIndicator.IsBusy = false;
}
在调度程序循环正在进行时忙碌指示器不会启动,指示器仅在循环后启动。在上述情况下,指示器未显示,但如果 IsBusy 标志未设置为 false,则指示器在循环后启动。
我不知道是我做错了什么还是逻辑不正确?请帮我解决这个问题。
【问题讨论】:
标签: c# wpf xaml busyindicator