PragmaGames
@PragmaGames
Увлекаюсь Unity.

Как переделать Task в UniTask?

Всем привет. У меня есть примерно такой код. Мне нужно реализовать метод PlayAsyncUniTask, что бы он работал так же как и PlayAsync. По сути ждал выполнения onComplete

private void Play(Action onComplete)
{
        onComplete?.Invoke();
}

 private async Task PlayAsync()
{
       var task = new TaskCompletionSource<bool>();
       Play((() => task.SetResult(true)));
       await task.Task;
}

private async UniTask PlayAsyncUniTask()
{
            
}


P.S Я нашел одно решение. Может будут еще ?
  • Вопрос задан
  • 210 просмотров
Решения вопроса 2
PragmaGames
@PragmaGames Автор вопроса
Увлекаюсь Unity.
private async UniTask PlayAsyncUniTask()
{
     var token = new CancellationTokenSource();

     Play(() =>
     {
            token.Cancel();
            token.Dispose();
     });
            
     await UniTask.WaitUntilCanceled(token.Token);
}
Ответ написан
Комментировать
freeExec
@freeExec
Участник OpenStreetMap
PlayAsync().AsUniTask()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы