Parfois il est nécessaire d’appeller une méthode async depuis une méthode qui n’est pas marquée async, par exemple lors d’une implémentation de version synchrone d’une méthode asynchrone.
Pour cela, il est possible de fabriquer une tâche synchrone en recourant à une fonction lambda asynchrone.
Par exemple, soit la méthode asynchrone suivante, prenant un paramètre de type string et retournant une valeur de type string :
class TestClass { public static async Task<string> TestMethodAsync(string parameter) { ... } }
L’appel de la méthode sans async pourra s’écrire:
public void TestMethod { var task = Task.Run<string>(async () => await TestClass.TestMethod("a_string")); var res = task.Result; // le résultat est traité comme habituellement avec les tâches }
Suggestions
Tracer les fonctions "easing" de WPF
Utiliser Google Traduction gratuitement en ligne de commande (Google translate for free)
WPF : Réaliser un inflecteur de clefs de dictionnaires de ressources
C# : obtenir les informations sur l'appelant d'une méthode
Comment configurer un thème pour le prompt de Windows Terminal avec indication de status Git / sessi...
Comment résoudre un échec de NuGet restore (impossible d'accéder à un objet supprimé) du gestionnair...
Migrer un site WordPress en local dans une stack Docker - Tutoriel Complet