簡體   English   中英

從查詢凍結PARSE + Unity3d

[英]PARSE + Unity3d freezing from a query

 public ParseObject TheRow; public void GetCharacterData(){ string UserName=ParseUser.CurrentUser.Username; var query = ParseObject.GetQuery ("Character").WhereEqualTo ("user", UserName); query.FirstAsync().ContinueWith(t =>{ TheRow = t.Result; PlayerPrefs.SetString("UserName",TheRow.Get<string>("user")); PlayerPrefs.SetString("Some",TheRow.Get<string>("SomeData")); // No save data ( I use PlayerPrefs from an other thread than MainThread ) Debug.Log(PlayerPrefs.GetString("UserName")); }); Debug.Log("UserName",TheRow.Get<string>("user")); // Null reference } 

為什么? 在異步代碼塊中將t.Result分配給TheRow,但是我試圖在該代碼塊之外訪問它,因此TheRow將為null ...解析方法需要一些時間...

我該如何重寫?

經過一個不眠之夜,我修復了它,並制作了此API。 PS:仍然感謝您的幫助:)

https://github.com/RealStyle12/Parse-and-Facebook-Unity3d

嘗試更改:

ParseObject TheRow = query.FirstAsync().Result;

至:

ParseObject TheRow = await query.FirstAsync();

編輯:閱讀該方法的手冊( http://parse.com/docs/dotnet/api/html/T_Parse_ParseQuery_1.htm

看起來您的探針是.Result在某處阻止了異步任務,例如全部使用await。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM