单击弹出窗口时处于挂起状态的应用程序

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)
    {

    }
}