0

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

4

1 回答 1

0
await DoSomethingThatTakesTime().ConfigureAwait(true);

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

于 2021-11-04T18:35:49.240 回答