Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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
Windows runtime Metro应用程序搜索激活的ProgressRing未显示_Windows Runtime_Microsoft Metro_Winrt Xaml_C# 5.0_Winrt Async - Fatal编程技术网

Windows runtime Metro应用程序搜索激活的ProgressRing未显示

Windows runtime Metro应用程序搜索激活的ProgressRing未显示,windows-runtime,microsoft-metro,winrt-xaml,c#-5.0,winrt-async,Windows Runtime,Microsoft Metro,Winrt Xaml,C# 5.0,Winrt Async,我正在我的Metro应用程序中实现搜索。搜索效果很好,结果和UI都像预期的那样出现了一个问题 我尝试在搜索之前显示一个ProgressRing,并在搜索完成后隐藏它,但它从未显示出来 我缺少什么,下面的代码片段: protected override void OnSearchActivated(Windows.ApplicationModel.Activation.SearchActivatedEventArgs args) { // Some Metro de

我正在我的Metro应用程序中实现搜索。搜索效果很好,结果和UI都像预期的那样出现了一个问题

我尝试在搜索之前显示一个
ProgressRing
,并在搜索完成后隐藏它,但它从未显示出来

我缺少什么,下面的代码片段:

    protected override void OnSearchActivated(Windows.ApplicationModel.Activation.SearchActivatedEventArgs args)
    {
        // Some Metro designer generated code here

        // Show progress ring
        MainPage.Current.ResetProgressRingState(true);

        // Bind search results
        MainPage.Current.BindSearchResults(args.QueryText);

        // Ensure the current window is active
        Window.Current.Activate();

        // Hide progress ring
        MainPage.Current.ResetProgressRingState(false);
    }
我怀疑需要等待
BindSearchResults
方法才能使
progressing
正常工作。如果是这样,最简单的方法是什么使该方法成为可等待的方法,如果不是,请告知我这里缺少的内容

如果是这样的话,最简单的方法是什么?如果不是的话,请告诉我这里缺少了什么


将其标记为
async
,并让其返回
Task
。在该方法中,对其他异步操作使用
wait

此方法包含大量UI交互,其中没有异步调用。我可以将它包装在wait Task.Run中,但在那里我必须将所有UI内容包装在dispatcher.RunAsync调用中。对我来说似乎太过分了。有什么建议吗?添加了一个等待任务。在该方法中延迟(10)。干净、简单,但不确定是否合适。我不会使用
Task.Delay
。我假设该方法中有一些东西需要时间,这就是为什么要显示进度指示器。你应该寻找什么在占用时间;常见的罪魁祸首是磁盘或网络I/O。鉴于这是一个Metro应用程序,我希望I/O是异步的。我怀疑“大量的UI交互”是罪魁祸首。