Bright Lee Bright Lee - 2 months ago 11
C# Question

What's difference Task.Run() , Calling async void AAA() on Xamarin forms?

As far as I know, there are three ways to call async method. (I'm sure there are much more)


  • 1>
    Task.Run(async () = {...}).

  • 2> Just calling
    AAA();



and AAA should be looks like

async void AAA()
{
...
}



  • 3>
    Device.InvokeMainThread(async () => {...});



I know If I use option 1(
Task.run
) process will go on background thread and option 3 is not.

What about option 2? It's on main thread if I called from
OnAppearing()
?

First of all, Is there not any problem to use like that?

And option2 and 3 are same?

Answer
  1. Executes AAA on a thread pool thread.
  2. Executes AAA on the calling thread.
  3. Executes AAA on the main thread.

As an aside, you should avoid async void methods.

Comments