Задать вопрос
Slavka_online
@Slavka_online
Интересная личность

Разработка своих асинхронных функций, какой шаблон верный?

public Task<int> Foo()
    {
        var tcs = new TaskCompletionSource<int>();
        Task.Run(() => {
            var result = SomeAction();
            tcs.SetResult(result);
        });
        return tcs.Task;
    }


Никак не могу понять, какую пользу здесь играет класс TaskCompletionSource, почему писать return Task.Run(...) считается дурным тоном?
  • Вопрос задан
  • 471 просмотр
Подписаться 3 Оценить Комментировать
Ответ пользователя Петр К ответам на вопрос (2)
petermzg
@petermzg
Самый лучший программист
В вашем примере TaskCompletionSource точно лишний.
Достаточно:
public Task<int> Foo()
{
        return Task.Run(() => {
            return SomeAction();
        });
    }
Ответ написан