Приложение в зависшем состоянии при нажатии на всплывающее окно
Я пытаюсь отобразить всплывающее окно в правом нижнем углу экрана во время входа в мою программу.
На странице, на которую я звоню во время входа, есть telerik radbusyindicator. После входа в систему открывается страница, на которой отображается индикатор занятости и всплывающее окно, которое работает нормально.
Но если я нажимаю на всплывающее окно во время работы индикатора занятости, моя программа зависает (т.е. она перестает отвечать на запросы, и мне приходится убивать процесс из диспетчера задач).
Может кто-нибудь помочь мне здесь.
для ссылки на код я использую WPF.
Спасибо
1 ответ
Вам нужно использовать ключевые слова "async" и "await", чтобы ваш пользовательский интерфейс реагировал при выполнении чего-либо в фоновом режиме. таким образом, все, что вы выполняете в фоновом режиме, будет выполнено для другой задачи и не замораживает ваш пользовательский интерфейс:
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)
{
}
}