PARSE+Unity3d冻结查询
本文关键字:查询 冻结 PARSE+Unity3d | 更新日期: 2023-09-27 18:01:48
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。附言:无论如何,谢谢你的帮助:(
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)
看起来你的问题是.结果在某个地方阻塞了异步任务,例如所有使用等待。