C# 如何在UWP中正确使用async和awiat与CoreDispatcher

C# 如何在UWP中正确使用async和awiat与CoreDispatcher,c#,multithreading,uwp,async-await,C#,Multithreading,Uwp,Async Await,我想在后台执行一项任务,该任务涉及更改UI状态,并且任务将在加载MainPage后开始执行 因此,我尝试在加载的事件处理程序中使用coredipatcher,如下所示: private async void Page_Loaded(object sender, RoutedEventArgs e) { await CoreApplication.MainView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>

我想在后台执行一项任务,该任务涉及更改UI状态,并且任务将在加载
MainPage
后开始执行

因此,我尝试在加载的事件处理程序中使用
coredipatcher
,如下所示:

private async void Page_Loaded(object sender, RoutedEventArgs e)
{
    await CoreApplication.MainView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
    () => DrawingBoard.Arrange());
}
以及
Arrange()
方法:

public void Arrange()
{
    for(int i=1; i<95; i++)
        for(int j=1; j<85; j++)
            this.Children.Add(new Line{ /*initializing*/ });
}
public void Arrange()
{

对于(int i=1;i它与async await无关。您将看到,如果使用System;
添加到顶部,它也将使用async和await命令编译,但仍然运行缓慢

您的方法已被称为async,但它必须创建95*85=8075行对象,在UI线程上执行所有操作。由于行是UI元素,您不能在后台执行此操作,但添加如此数量的UI元素需要一些时间


有几种可能的优化方法,但不知道您试图做什么,无法给出如何使其以性能方式工作的建议,这与async await无关。您将看到,如果使用System将
添加到顶部,它也将使用async和await命令编译,但仍在运行s低

您的方法已被称为async,但它必须创建95*85=8075行对象,在UI线程上执行所有操作。由于行是UI元素,您不能在后台执行此操作,但添加如此数量的UI元素需要一些时间

有几种可能的优化方法,但不知道你想做什么,不可能给出建议,如何使其以一种高效的方式工作