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
Installation des applications via la technologie ClickOnce de Microsoft
Transformer les séparateurs d'un fichier CSV
GMini Translator : un traducteur de textes ergonomique pour le bureau Windows
GMini Translator 2.0 : un traducteur de textes gratuit pour le bureau Windows
Comment résoudre un échec de NuGet restore (impossible d'accéder à un objet supprimé) du gestionnair...
Docker n'arrive plus à démarrer sous Windows