C# 来自wait DisplayAlert Xamarin.Forms的结果
Xamarin具有可等待的C# 来自wait DisplayAlert Xamarin.Forms的结果,c#,xamarin,xamarin.forms,C#,Xamarin,Xamarin.forms,Xamarin具有可等待的DisplayAlert方法,该方法返回Task 我有staticclassHelpers在这里我想写这样的代码: public static bool DisplayAlert(string title, string message, string accept, string cancel){ //return answer from Page.DisplayAlert(title, message, accept, cancel); } 此方法将从应用
DisplayAlert
方法,该方法返回Task
我有static
classHelpers
在这里我想写这样的代码:
public static bool DisplayAlert(string title, string message, string accept, string cancel){
//return answer from Page.DisplayAlert(title, message, accept, cancel);
}
此方法将从应用程序的其他部分调用,如:
public ... SomeMethod(){
// some code
bool result = DisplayAlert(...);
// some code
}
我想避免SomeMethod
中的async/wait
。(如何异步等待用户的响应?!!!!!)
我尝试了Wait Page.DisplayAlert(…)
,task.Wait()
和其他方法。但是任务
是异步执行的,没有返回值。或者应用程序永久冻结而不显示DisplayAlert
怎么做?最佳做法是什么?如果希望
SomeMethod
保持同步,这是一个选项:
public async static Task<bool> DisplayAlert(string title, string message, string accept,
string cancel){
return await Page.DisplayAlert(title, message, accept, cancel);
}
// SomeMethod will run Synchronously
public boolean SomeMethod(){
bool result = StaticClass.DisplayAlert(..).Result;
return result;
}
public async static Task DisplayAlert(字符串标题、字符串消息、字符串接受、,
字符串(取消){
返回等待页面。显示警报(标题、消息、接受、取消);
}
//SomeMethod将同步运行
公共布尔方法(){
bool result=StaticClass.DisplayAlert(..).result;
返回结果;
}
编辑:修复了一些语法谢谢,但是这段代码会死锁(((一直使用async对我来说似乎不合逻辑…不是死锁,它将同步等待DisplayAlert返回结果。这不是死锁的定义。我尝试过,但出现了死锁。好吧,那么为什么你希望
SomeMethod
同步?在移动世界中,你很少需要同步调用,你永远不应该阻止你的进程。)用户界面在任何情况下