2016-10-12 2 views
0

Ich versuche ein Popup in der unteren rechten Ecke des Bildschirms zum Zeitpunkt der Anmeldung in meinem Programm anzuzeigen.Anwendung in gehängtem Zustand beim Klicken auf das Popup

Die Seite, die ich zum Zeitpunkt der Anmeldung anrufe, hat einen Telerik-Radbusindikator. Nach dem Einloggen öffnet sich die Seite und zeigt die Besetztanzeige und das Popup an, was gut funktioniert.

Aber wenn ich auf das Popup klicke, während der Busy-Indikator funktioniert, wird mein Programm gehängt (d. H. Es reagiert nicht mehr und ich muss den Prozess vom Task-Manager beenden).

Kann mir hier jemand helfen.

für Code-Referenz, verwende ich WPF.

Dank

Antwort

2

Sie müssen „async“ und verwenden „erwarten“ keywords, um für Ihre UI ansprechbar zu sein, wenn im Hintergrund Somthing ausführt.

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

    } 
} 
+0

Sie haben Recht @Rom er 'async await' verwenden müssen oder er kann Hintergrund Arbeiter verwenden: auf diese Weise, was auch immer Sie auf der backgroung ausführen wird auf einer differnt Aufgabe und nicht einfrieren Ihre Benutzeroberfläche ausgeführt werden –

Verwandte Themen