Комментарии 2
поздравляю с первой статьей на хабре! хорошо написано, лаконично и по делу
0
По поводу выполнения коллбэка в UI-потоке — я писал экстеншен
CoroutineExecuter умеет добавлять в очередь экшен и выполнять его при следующем апдейте, т.е. метод Execute будет асинхронным. в целом — очень удобно, и теперь можно писать вот так
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);
}
});
}
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Простой лидерборд на Unity3D с facebook-ом