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

时间:2016-10-02 13:37:21

标签: c# wpf xamarin task

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

  • 1> Task.Run(async () = {...}).
  • 2 - ;只需致电AAA();

和AAA应该看起来像

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

我知道如果我使用选项1(Task.run)进程将进入后台线程而选项3不进行。

选项2怎么样?如果我从OnAppearing()打来电话,它就在主线上了? 首先,这样使用没有任何问题吗?

选项2和3是一样的吗?

1 个答案:

答案 0 :(得分:4)

  1. 在线程池线程上执行AAA
  2. 在调用线程上执行AAA
  3. 在主线程上执行AAA
  4. 顺便说一句,你应该avoid async void methods

相关问题