C# 在Windows 8.1应用商店中键入更快或更长的查询时,Searchbox控件崩溃

C# 在Windows 8.1应用商店中键入更快或更长的查询时,Searchbox控件崩溃,c#,xaml,windows-store-apps,winrt-xaml,search-box,C#,Xaml,Windows Store Apps,Winrt Xaml,Search Box,我正在尝试用搜索建议实现Searchbox。每次我输入更快或更长的查询文本时,应用程序都会崩溃。在catch块中未捕获异常 private void SearchBoxEventsSuggestionsRequested(object sender, SearchBoxSuggestionsRequestedEventArgs e) { try { var pList = GetPList(); string queryText = e.QueryTex

我正在尝试用搜索建议实现Searchbox。每次我输入更快或更长的查询文本时,应用程序都会崩溃。在catch块中未捕获异常

private void SearchBoxEventsSuggestionsRequested(object sender, SearchBoxSuggestionsRequestedEventArgs e)
{
    try { 
        var pList = GetPList();
        string queryText = e.QueryText;
        if (!string.IsNullOrEmpty(queryText))
        {    
        Windows.ApplicationModel.Search.SearchSuggestionCollection suggestionCollection = e.Request.SearchSuggestionCollection;
        foreach (var p in pList)
        {
            bool exists = p.desc.IndexOf(queryText, StringComparison.CurrentCultureIgnoreCase) > -1;
                                if (exists)
                                {

                                    string result = p.desc + Environment.NewLine + p.name;
                                    suggestionCollection.AppendQuerySuggestion(result);
                                }
        }
        }                                            
    }
    catch (Exception ex){}                
}
GetPList方法不是异步的


我这里出了什么问题?

您可以尝试延迟方法。等待一秒钟,然后再按任何其他键。一旦用户停止键入,则可以执行搜索/筛选


启动计时器并在滴答声中执行操作。如果有其他按键,请立即按下。重置计时器,使滴答声进一步延迟

您可以尝试延迟方法。等待一秒钟,然后再按任何其他键。一旦用户停止键入,则可以执行搜索/筛选


启动计时器并在滴答声中执行操作。如果有其他按键,请立即按下。重置计时器,使滴答声进一步延迟

首先,为什么函数是异步的?你没什么可等的,那是个错误。没有使用async关键字。首先,为什么函数是异步的?你没什么可等的,那是个错误。没有使用异步关键字。