Parse.com получает количество распродаж за последний день в единстве

Я пытаюсь показать количество из класса синтаксического анализа в метку, но возникает следующая ошибка:

«CompareBaseObjectsInternal может вызываться только из основного потока. Конструкторы и инициализаторы полей будут выполняться из потока загрузки при загрузке сцены. Не используйте эту функцию в конструкторе или инициализаторах полей, вместо этого переместите код инициализации в функцию «Пробуждение» или «Пуск». ."

Мой код приведен ниже. Может кто-нибудь помочь мне?

ParseQuery<ParseObject> USQuery = ParseObject.GetQuery ("Sales")
    .WhereEqualTo ("transactionType", "Purchase")
    .WhereGreaterThan ("createdAt",DateTime.Now.AddDays(-1));

USQuery.CountAsync().ContinueWith(t =>
{
    int result=t.Result;
    labelUSSale.text=result.ToString();
});

person Shahid Raees PMP    schedule 26.01.2015    source источник
comment
Где этот код? Ошибка предполагает, что он у вас есть в конструкторе и вместо этого вы должны переместить его в методы Start или Awake?   -  person Dover8    schedule 16.02.2015


Ответы (1)


Вы можете отправлять значение метки NGUI только из основного потока. Простым решением здесь было бы дождаться изменения переменной «результат», а затем назначить label.text. Я рекомендую заглянуть в Задачи, там есть гораздо более удобные способы управления запросами Parse.com.

https://parse.com/docs/unity_guide#tasks

Попробуй это:

IEnumerator GetSales()
{   
    int result = -1;

    ParseQuery<ParseObject> USQuery = ParseObject.GetQuery ("Sales").WhereEqualTo ("transactionType", "Purchase").WhereGreaterThan ("createdAt",DateTime.Now.AddDays(-1));

    USQuery.CountAsync().ContinueWith(t =>
    {
        result=t.Result;  
    });

    while (result == -1) yield return new WaitForSenOfFrame();
    labelUSSale.text=result.ToString();

}
person Greg Lukosek    schedule 17.02.2015
comment
спасибо, Грег Луксек, за ваш ответ. Я решил эту проблему так рано, используя тот же подход, который вы упомянули. - person Shahid Raees PMP; 26.07.2015