字符串在for循环中连接导致应用程序停止 - Xamarin

时间:2018-02-09 17:58:21

标签: c# android xamarin webview

我有一个正在构建的应用程序,在此特定点构建C#中的字符串以返回到我的WebView。简单连接工作完美,但是当我在for循环中这样做时,它会停止。这个循环运行30-40次。我读过的东西建议在循环中使用StringBuilder,但这没有帮助。我的代码如下所示:

        StringBuilder jsonReturn = new StringBuilder();
        jsonReturn.Append("{");
        for (int i = 0; i < apps.Count(); i++)
        {
            jsonReturn.Append("fooBar");
        }
        jsonReturn.Append("}");
        return jsonReturn.ToString();

如果我注释掉for循环中的行,它就会完美运行。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

  

我认为官方错误是暂停

如果是ANR(Android Not Responding)类型的问题,请将您的字符串处理移出主/ UI线程,Task.Run将该工作放在一个线程上将起作用:

StringBuilder jsonReturn = new StringBuilder();
await Task.Run(() =>
{
    jsonReturn.Append("{");
    for (int i = 0; i < apps.Count(); i++)
    {
        jsonReturn.Append("fooBar");
    }
    jsonReturn.Append("}");
});
return jsonReturn.ToString();