C# 是否在不使用CurrentSynchronizationContext的情况下等待?

C# 是否在不使用CurrentSynchronizationContext的情况下等待?,c#,xamarin.forms,async-await,task,C#,Xamarin.forms,Async Await,Task,据我所知,使用async/await相当于Task.Run和TaskScheduler.FromCurrentSynchronizationContext()。但我在尝试这个(Xamarin.Forms环境)时遇到了尴尬: 这与以下代码不同: Action ReFocus = () => { adresseeEntry.Unfocus(); Task.Factory.StartNew<bool>(() => true).ContinueWith(r =&g

据我所知,使用
async/await
相当于
Task.Run
TaskScheduler.FromCurrentSynchronizationContext()
。但我在尝试这个(Xamarin.Forms环境)时遇到了尴尬:

这与以下代码不同:

Action ReFocus = () =>
{
    adresseeEntry.Unfocus();
    Task.Factory.StartNew<bool>(() => true).ContinueWith(r =>
    {
        adresseeEntry.Focus();
    }, TaskScheduler.FromCurrentSynchronizationContext());//*/
};
ReFocus();
动作重新聚焦=()=>
{
肾上腺视功能不集中();
Task.Factory.StartNew(()=>true)。继续(r=>
{
adresseeEntry.Focus();
},TaskScheduler.FromCurrentSynchronizationContext())//*/
};
重新聚焦();

也许关注某个元素不是一个很好的例子。但这是我在实践中遇到的真实情况(在第一种情况下,由于某种原因焦点不会发生)。

应该是相同的。你发现了什么不同?这是你的全部代码还是你遗漏了什么?在之前的一些
wait
之后是否有任何
configurewait(false)
?触发并忘记代码是危险的。如果异步代码因异常而失败,那么您将永远看不到它。@PauloMorgado,在第一种情况下,没有元素焦点,就像在第二种情况下一样case@TheodorZoulias没有。在我的代码中,从未使用过
ConfigureAwait
方法
Action ReFocus = () =>
{
    adresseeEntry.Unfocus();
    Task.Factory.StartNew<bool>(() => true).ContinueWith(r =>
    {
        adresseeEntry.Focus();
    }, TaskScheduler.FromCurrentSynchronizationContext());//*/
};
ReFocus();