Я ищу лучший способ вызова нескольких асинхронных методов, где каждый следующий метод зависит от значений, возвращенных ранее.
Я экспериментирую с двумя подходами
1) https://dotnetfiddle.net/waPL9L
public async void Main()
{
var T1 = await Sum(2,5);
var T2 = await Sum(T1, 7);
var T3 = await Sum(T2, 7);
Console.WriteLine(T3);
}
public async Task<int> Sum(int num1, int num2){
return await Task.Run(() => {
// for some reason if i use Sleep... I don't see any results at all...
//Thread.Sleep(2000);
return num1 + num2;
});
}
2) https://dotnetfiddle.net/1xycWH
public async void Main()
{
var T1 = Sum(2,5);
var T2 = Sum(T1.Result, 7);
var T3 = Sum(T2.Result, 7);
//var myVar = T3.Result;
var listOfTasks = new List<Task>{T1,T2,T3};
await Task.WhenAll(listOfTasks);
Console.Write(T3.Result);
}
public async Task<int> Sum(int num1, int num2){
return await Task.Run(() => {
Thread.Sleep(1000);
return num1 + num2;
});
}
Просто пытаюсь понять лучший подход, как будто я новичокв асинхронное программирование.
Заранее спасибо!
Джонни