Aller au contenu

Task<T> pour retourner une valeur

Contexte : Quand une méthode asynchrone doit retourner une valeur, utilisez Task<T>. L’expression await donne la valeur de type T.

using System.Data.SqlClient;
using System.Threading.Tasks;
using Dapper;
public class UserRepository
{
private string connectionString = "Server=.;Database=MyDb;Trusted_Connection=true;";
public async Task<int> GetUserCountAsync()
{
using var connection = new SqlConnection(connectionString);
return await connection.QueryFirstAsync<int>("SELECT COUNT(*) FROM Users");
}
}
// Utilisation
// int count = await new UserRepository().GetUserCountAsync();
  • Nommez la méthode avec le suffixe Async.
  • Évitez d’utiliser .Result ou .Wait() sur la tâche retournée.

Appels API : HttpClient.GetStringAsync retourne Task<string>. JsonSerializer.DeserializeAsync retourne Task<T>.

Exemple : Documentation HttpClient