#c# #wpf #xamarin #task
#c# #wpf #xamarin #задача
Вопрос:
Насколько я знаю, есть три способа вызвать метод async. (Я уверен, что их гораздо больше)
- 1>
Task.Run(async () = {...}).
- 2> Просто вызов
AAA();
и AAA должен выглядеть так
async void AAA()
{
...
}
- 3>
Device.InvokeMainThread(async () => {...});
Я знаю, что если я использую вариант 1 ( Task.run
), процесс будет выполняться в фоновом потоке, а вариант 3 — нет.
Как насчет варианта 2? Это в основном потоке, если я вызвал из OnAppearing()
?
Прежде всего, нет ли проблем с таким использованием?
А опции 2 и 3 одинаковы?
Ответ №1:
- Выполняется
AAA
в потоке пула потоков. - Выполняется
AAA
в вызывающем потоке. - Выполняется
AAA
в основном потоке.
Кроме того, вам следует избегать методов async void .
Комментарии:
1. Большое спасибо. Это действительно полезно.