2017-06-28 12 views
0

C#SocketIOライブラリのメソッドの中からDisplayAlertを呼び出そうとしています。メソッド内からDisplayAlertをどのように呼び出しても、常に 'InspectorDebugSession(somenum):HandleTargetEvent:UnhandledException'という結果になります。方法の外でそれを技術的に試みるヘルパーメソッドでも、それはまだ機能しません。 socket.On()をコンストラクタの外に移動し、まだ起動する別のメソッドに移動すると、それはまだ動作しません。メソッド内のDisplayAlert 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); 
    } 

答えて

0

App.socket.OnラムダコールバックはおそらくUIスレッド上にありません。

試してみてください。

Device.BeginInvokeOnMainThread(async() => await DisplayAlert("hi", "hi", "hi")); 
関連する問題