【问题标题】:Navigate TaskDialogPage after asynchronous call异步调用后导航TaskDialogPage
【发布时间】:2021-12-18 20:46:12
【问题描述】:

异步操作完成后,我需要将TaskDialogPage 导航到另一个。这是我的代码

TaskDialogPage page = new()
{
    //...
}

TaskDialogPage completedPage = new()
{
    //...
}

page.Created += async (_, _) =>
{
    await DoSomethingThatTakesTime().ConfigureAwait(false);
    page.Navigate(completedPage); // NotSupportedException - Illegal thread call 
};

我可以使用Control.Invoke() 方法:

page.Invoke(() => page.Navigate(completedPage))

但是TaskDialogPage 不继承自Control

【问题讨论】:

    标签: c# asynchronous .net-core async-await taskdialog


    【解决方案1】:
    await DoSomethingThatTakesTime().ConfigureAwait(true);
    

    知道了。 ConfigureAwait 指定是否应该尝试返回原始上下文,即 UI 上下文。尽管ConfigureAwait(true) 是默认值并隐式指定,但我认为这更好地捕捉了意图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-14
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      • 2015-11-06
      • 1970-01-01
      • 2015-12-31
      相关资源
      最近更新 更多