Task.Run()有什么区别,在Xamarin表单上调用异步void AAA()?

Bri*_*Lee 5 c# wpf task xamarin

据我所知,有三种方法可以调用异步方法。(我敢肯定还有更多)

  • 1> Task.Run(async () = {...}).
  • 2>只是打电话 AAA();

和AAA应该看起来像

async void AAA()
{
...
}
Run Code Online (Sandbox Code Playgroud)
  • 3> Device.InvokeMainThread(async () => {...});

我知道如果我使用选项1(Task.run),进程将在后台线程上运行,而选项3则没有。

那选项2呢?如果我从调用,它在主线程上OnAppearing()
首先,这样使用没有问题吗?

和option2和3一样吗?

Cha*_*ger 5

  1. AAA在线程池线程上执行。
  2. AAA在调用线程上执行。
  3. AAA在主线程上执行。

顺便说一句,您应该避免使用异步void方法