在 windows 商店应用中调用服务时不显示 ProgressBar 按钮
ProgressBar button doesn't show while service call in windows store app
我想在进行服务调用时显示 ProgressBar。
Product.xml
<ProgressBar Name="loading1" Visibility="Collapsed" IsIndeterminate="True" HorizontalAlignment="Left" Height="50" Width="535" VerticalAlignment="Center" Background="White" Grid.Row="1" Margin="0,311,0,310"/>
Product.xml.cs
loading.Visibility = Visibility.Visible; //loading start
getAllProductDetails(); //contain service call and bind data in list
loading.Visibility = Visibility.Collapsed; //loading finish
加载应在“getAllProductDetails()
”调用之前开始,并应在“getAllProductDetails()
”完成后完成。
如果我也使用了 await Task.Run(() => getAllProductDetails());
它会继续执行下一行“await Task.Run(() => getAllProductDetails());
”。它必须等到“getAllProductDetails()
”调用完成它的工作。
任何人都可以告诉我我在这里缺少什么吗?
将 getAllProductDetails()
更改为 return Task
而不是 void
private async Task getAllProductDetails()
{
// Body
}
然后这样调用
loading.Visibility = Visibility.Visible; //loading start
await getAllProductDetails();
loading.Visibility = Visibility.Collapsed; //loading finish
如果任何异步函数 returns void
你不能等待执行完成。
我想在进行服务调用时显示 ProgressBar。 Product.xml
<ProgressBar Name="loading1" Visibility="Collapsed" IsIndeterminate="True" HorizontalAlignment="Left" Height="50" Width="535" VerticalAlignment="Center" Background="White" Grid.Row="1" Margin="0,311,0,310"/>
Product.xml.cs
loading.Visibility = Visibility.Visible; //loading start
getAllProductDetails(); //contain service call and bind data in list
loading.Visibility = Visibility.Collapsed; //loading finish
加载应在“getAllProductDetails()
”调用之前开始,并应在“getAllProductDetails()
”完成后完成。
如果我也使用了 await Task.Run(() => getAllProductDetails());
它会继续执行下一行“await Task.Run(() => getAllProductDetails());
”。它必须等到“getAllProductDetails()
”调用完成它的工作。
任何人都可以告诉我我在这里缺少什么吗?
将 getAllProductDetails()
更改为 return Task
而不是 void
private async Task getAllProductDetails()
{
// Body
}
然后这样调用
loading.Visibility = Visibility.Visible; //loading start
await getAllProductDetails();
loading.Visibility = Visibility.Collapsed; //loading finish
如果任何异步函数 returns void
你不能等待执行完成。