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。。。分析方法需要一些时间。。。

我该怎么重写?

PARSE+Unity3d冻结查询

经过一个不眠的夜晚,我修复了它,并制作了这个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)

看起来你的问题是.结果在某个地方阻塞了异步任务,例如所有使用等待。