我尝试在Xamarin项目上使用ActivityIndicator在整个方法期间禁用接口,在该方法中,我尝试从服务器获取一些数据。但是,方法后的代码(用于重新启用我的UI并禁用ActivityIndicator)并未以某种方式使用...
private async void SyncButton_Clicked(object sender, EventArgs e)
{
var Connection = Connectivity.NetworkAccess;
if (Connection == NetworkAccess.Internet)
{
var ConnectionType = Connectivity.ConnectionProfiles;
if (ConnectionType.Contains(ConnectionProfile.WiFi))
{
MainScreenContent.IsEnabled = false;
MainScreenContent.Opacity = 0.2;
SyncLoadScreen.IsEnabled = true;
SyncLoadScreen.IsRunning = true;
SyncLoadScreen.IsVisible = true;
GetProperties();
MainScreenContent.IsEnabled = true;
MainScreenContent.Opacity = 1;
SyncLoadScreen.IsEnabled = false;
SyncLoadScreen.IsRunning = false;
SyncLoadScreen.IsVisible = false;
}
}
}
答案 0 :(得分:0)
您阻止用户界面更新。要更新用户界面,您需要使用UI线程。但是,通过在UI线程上运行GetProperties();
可以使它保持繁忙,并且它无法处理您以前的更新接口请求。通常,您需要使用Task.Run
方法在非UI线程上运行代码。