Как стать автором
Обновить

Комментарии 2

поздравляю с первой статьей на хабре! хорошо написано, лаконично и по делу
По поводу выполнения коллбэка в UI-потоке — я писал экстеншен
        public static Task OnUiThread(this Task task, Action<Task> action)
        {
            return task.ContinueWith(r =>
            {
                var executer = CoroutineExecuter.Instance;
                executer.Execute(() => action(task));
            });
        }

        public static void OnUiThread<T>(this Task<T> task, Action<Task<T>> action)
        {
            task.ContinueWith(delegate(Task t)
            {
                var executer = CoroutineExecuter.Instance;
                executer.Execute(() => action((Task<T>)t));
            });
        }


CoroutineExecuter умеет добавлять в очередь экшен и выполнять его при следующем апдейте, т.е. метод Execute будет асинхронным. в целом — очень удобно, и теперь можно писать вот так
        public void RegisterUser(string login, string pass)
        {
            var user = new ParseUser()
            {
                Username = login,
                Password = pass
            };

            user.SignUpAsync().OnUiThread(r =>
            {
                if (r.IsSuccessed())
                {
                    RegisterFinished(AuthError.Ok);
                }
                else
                {
                    RegisterFinished(AuthError.AccountAlreadyExists);
                }
            });
        }
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории