2
我正在構建一個簡單的C#單聲道應用程序,它從parse.com服務器查詢數據。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.StackOverflowException: 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上的兩個單聲道平臺上試過這段代碼。這兩個平臺都拋出stackoverflow例外。然而,在Windows上,使用.NET,它工作正常,即使有1000個限制。這導致我相信它是mono和parse.com庫的一部分。有什麼建議麼?
這是什麼版本的單聲道? – knocte
單聲道版本:4.0.3 – jigglypuff