Как я знаю, использование async/await
эквивалентно Task.Run
с TaskScheduler.FromCurrentSynchronizationContext()
. Но я столкнулся с смущением, когда попробовал это (среда Xamarin.Forms):
Action ReFocus = async () =>
{
// not work well as next somehow
adresseeEntry.Unfocus();
await Task.Run(() => {});
adresseeEntry.Focus();
};
ReFocus();
Это не работает как следующий код:
Action ReFocus = () =>
{
adresseeEntry.Unfocus();
Task.Factory.StartNew<bool>(() => true).ContinueWith(r =>
{
adresseeEntry.Focus();
}, TaskScheduler.FromCurrentSynchronizationContext());//*/
};
ReFocus();
Возможно, фокусировка на элементе не очень хороший пример. Но это реальная ситуация, с которой я столкнулся на практике (в первом случае фокус не происходит по какой-то причине).