单击弹出窗口时处于挂起状态的应用程序
Application in hanged state on clicking the popup
我试图在我的程序登录时在屏幕右下角显示一个弹出窗口。
我在登录时调用的页面有一个 telerik radbusyindicator。登录后,页面打开并显示繁忙指示器和弹出窗口,工作正常。
但是如果我在忙碌指示器工作时单击弹出窗口,我的程序就会挂起(即它变得没有响应,我必须从任务管理器中终止进程)。
谁能帮帮我。
为了代码参考,我使用的是 WPF。
谢谢
您需要使用 "async" 和 "await" 关键字,以便您的 UI 在后台执行某些操作时能够响应。这样,无论您在背景上执行什么,都将在不同的任务上执行,而不会冻结您的 UI:
private async void LoginButtonClick(object sender, RoutedEventArgs e)
{
try
{
radbusyindicator.Visibility = Visibility.Visible;
await LoginAsync();
radbusyindicator.Visibility = Visibility.Hidden;
}
catch (Exception)
{
}
}
private async Task<string> LoginAsync()
{
try
{
var loginTask = await Task.Run(() =>
{
Login();
return "Login Successfully !"
});
return loginTask.Result;
}
catch (Exception ex)
{
}
}
我试图在我的程序登录时在屏幕右下角显示一个弹出窗口。
我在登录时调用的页面有一个 telerik radbusyindicator。登录后,页面打开并显示繁忙指示器和弹出窗口,工作正常。
但是如果我在忙碌指示器工作时单击弹出窗口,我的程序就会挂起(即它变得没有响应,我必须从任务管理器中终止进程)。
谁能帮帮我。
为了代码参考,我使用的是 WPF。
谢谢
您需要使用 "async" 和 "await" 关键字,以便您的 UI 在后台执行某些操作时能够响应。这样,无论您在背景上执行什么,都将在不同的任务上执行,而不会冻结您的 UI:
private async void LoginButtonClick(object sender, RoutedEventArgs e)
{
try
{
radbusyindicator.Visibility = Visibility.Visible;
await LoginAsync();
radbusyindicator.Visibility = Visibility.Hidden;
}
catch (Exception)
{
}
}
private async Task<string> LoginAsync()
{
try
{
var loginTask = await Task.Run(() =>
{
Login();
return "Login Successfully !"
});
return loginTask.Result;
}
catch (Exception ex)
{
}
}