I have the following function:
public bool ShowMessageQuestion(string message)
{
var _result = Application.Current.MainPage.DisplayAlert("Test", message, "Yes", "No");
_result.Start();
return _result.Result;
}
The DisplayAlert
is an async function, so when I execute the above code, I get an exception
Start may not be called on a promise-style task
I would like to get the above code stops executing until user selects yes/no option.
Any idea?
I tried also:
var _result = Application.Current.MainPage.DisplayAlert("Test", "Message", "Yes", "No").GetAwaiter().GetResult();
You have a method defined as a synchronous method and you attempt inside of it to run an asynchronous method and return its result, without waiting for it. To solve this conundrum, you have two options:
Option 1: Synchronize inside the method
This is useful if you need the result to process somewhere which makes it necessary to wait for it.
Option 2: Convert your method to async
If you do not necessarily need to wait for the result, then you can define your method as async and allow simply issuing it whenever its result is not important for the caller.