据我所知,有三种方法可以调用异步方法. (我敢肯定还有更多)
> 1> Task.Run(async()= {…}).
> 2>只是调用AAA();
和AAA应该看起来像
async void AAA()
{
...
}
> 3> Device.InvokeMainThread(async()=> {…});
我知道如果我使用选项1(Task.run),进程将在后台线程上运行,而选项3不是.
那选项2呢?如果我从OnAppearing()调用,它在主线程上?
首先,这样使用没有问题吗?
和option2和3一样吗?
解决方法:
>在线程池线程上执行AAA.
>在调用线程上执行AAA.
>在主线程上执行AAA.
顺便说一句,您应该avoid async void methods.