parse.com查询在mono下抛出栈溢出异常

parse.com query throws stack overflow exception under mono

我正在构建一个简单的 C# mono 应用程序,它从 parse.com 服务器查询数据。

没什么特别的:

    private static async Task<ParseGameData> DownloadGameData(DateTime dateFrom)
    {
        ParseGameData gameData = new ParseGameData();
        InitParse();

        var qHits = ParseObject.GetQuery("Hits").WhereGreaterThan("createdAt", dateFrom)
            .Limit(100).OrderBy("createdAt");
        gameData.hits = await qHits.FindAsync();

        return gameData;
    }

并从另一个函数调用:

ParseGameData gameData = DownloadGameData(timestamp).Result;

这很好用,查询少量(~少于 75 条记录)时不会抛出异常。但是,如果我将限制设置得更高,应用程序就会崩溃,我会得到:

    Unhandled Exception:
    System.WhosebugException: The requested operation caused a stack overflow.
    at System.Threading.Tasks.Task.FinishContinuations () [0x00000] in <filename unknown>:0 
    at System.Threading.Tasks.Task.FinishStageThree () [0x00000] in <filename unknown>:0 
    at System.Threading.Tasks.Task`1[System.Threading.Tasks.TaskExtensions+VoidResult].TrySetResult (VoidResult result) [0x00000] in <filename unknown>:0 
    at System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.TaskExtensions+VoidResult].TrySetFromTask (System.Threading.Tasks.Task task, Boolean lookForOce) [0x00000] in <filename unknown>:0 
    at System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.TaskExtensions+VoidResult].InvokeCore (System.Threading.Tasks.Task completingTask) [0x00000] in <filename unknown>:0 
    at System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.TaskExtensions+VoidResult].Invoke (System.Threading.Tasks.Task completingTask) [0x00000] in <filename unknown>:0 

...然后重复这些行。

出于兴趣目的:数据库中的每条记录大约需要 65KB,因此 100 次匹配将是 6.5MB。

我已经在 OS X 和 Linux 两个单声道平台上尝试过此代码。两个平台都抛出 Whosebug 异常。但是在 Windows 上,使用 .NET,它工作正常,即使有 1000 个限制。这让我相信它与单声道和 parse.com 库有关。有什么建议吗?

这似乎是一个解析库错误。我已将解析库从 1.5.5 降级到 1.5.4,现在它工作正常。