Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 异步执行另一个任务时,我的接口冻结_C#_Windows_Xamarin_Uwp - Fatal编程技术网

C# 异步执行另一个任务时,我的接口冻结

C# 异步执行另一个任务时,我的接口冻结,c#,windows,xamarin,uwp,C#,Windows,Xamarin,Uwp,对不起,我的英语不好 我调用我的页面,称为“MessagePage”,其中包含初始化组件“this.InitializeComponent();”的方法 我创建了一个在加载页面时调用的方法,称为“page_Loaded” 在这个方法中,有一个对另一个方法的调用,它将加载大量数据来填充接口中的网格,这个方法可能需要10秒钟才能执行 但是,在该方法响应之前,我的接口是冻结的 我希望在请求数据时界面变得正常 public MessagePage() { this.Initia

对不起,我的英语不好

我调用我的页面,称为“MessagePage”,其中包含初始化组件“this.InitializeComponent();”的方法

我创建了一个在加载页面时调用的方法,称为“page_Loaded”

在这个方法中,有一个对另一个方法的调用,它将加载大量数据来填充接口中的网格,这个方法可能需要10秒钟才能执行

但是,在该方法响应之前,我的接口是冻结的

我希望在请求数据时界面变得正常

public MessagePage()
    {

        this.InitializeComponent();
    }

private async void Page_Loaded(object sender, RoutedEventArgs e)
    {await PopulateGrid();}

private async Task PopulateGrid() { //my code}

我已经感谢您的帮助。

我在等待答案的同时创建了一个任务,从而解决了我的问题。像这样:

await Task.Run(() =>
            {
                while (!result)
                {
                    if (startTime.AddSeconds(10) < DateTime.Now)
                    {
                        break;
                    }
                }
            });
等待任务。运行(()=>
{
而(!结果)
{
if(startTime.AddSeconds(10)
您需要向我们展示
PopulateGrid
的实际功能。仅仅因为它是
async
并不意味着它将在非gui线程上运行。