2017-06-28 3 views
0

Ich versuche, DisplayAlert innerhalb einer Methode aus einer C# SocketIO-Bibliothek aufzurufen. Unabhängig davon, wie ich DisplayAlert innerhalb der Methode aufrufen werde, führt dies immer zu 'InspectorDebugSession (somenum): HandleTargetEvent: UnhandledException'. Selbst mit der Hilfsmethode, es technisch außerhalb der Methode zu versuchen, funktioniert es immer noch nicht. Wenn ich den socket.On() nach außerhalb des Konstruktors und in eine andere Methode verschiebe, in der er immer noch zündet, funktioniert er immer noch nicht.DisplayAlert innerhalb einer Methode auslöst HandleTargetEvent: UnhandledException

public PhoneNumberPage() 
    { 
     InitializeComponent(); 
     App.socket.On("code_status", async (data) => 
     { 
      await DisplayAlert("hi", "hi", "hi"); 
      if (true) 
      { 
       await this.DisplayAlert("hi", "hi", "hi"); 
       displayAlert("hi", "hi", "hi"); 
      } 
      if ((string)data == "timeout") 
      { 
       Console.WriteLine("!TIMEOUT!"); 
      } 
      else if (!(bool)data) 
      { 
       displayAlert("Wrong Code", "The code you entered was incorrect!", "Ok"); 
      } 
      else if ((bool)data) 
      { 
       // save 
      } 
     }); 
    } 
private async void displayAlert(string title, string info, string accept, string cancel) 
    { 
     await DisplayAlert(title, info, accept, cancel); 
    } 

Antwort

0

Der App.socket.On lambda Rückruf ist vielleicht nicht auf dem UI-Thread.

Versuchen:

Device.BeginInvokeOnMainThread(async() => await DisplayAlert("hi", "hi", "hi")); 
Verwandte Themen