J'ai un async
méthode qui ne retourne pas de données:
public async Task MyAsyncMethod()
{
// do some stuff async, don't return any data
}
J'appelle cela de l'autre méthode qui retourne des données:
public string GetStringData()
{
MyAsyncMethod(); // this generates a warning and swallows exceptions
return "hello world";
}
Appelant MyAsyncMethod()
sans attendre, il provoque un "Parce que cet appel n'est pas attendue, la méthode actuelle continue de s'exécuter avant l'appel est terminé" avertissement dans visual studio. Sur la page de cet avertissement, il est indiqué:
Vous devriez envisager la suppression de l'avertissement que si vous êtes sûr que vous ne voulez pas attendre pour l'appel asynchrone terminer et que la méthode appelée de ne pas soulever toutes les exceptions.
Je suis sûr que je ne veux pas attendre que l'appel à la fin; je n'ai pas besoin de ou le temps de. Mais l'appel peut lever des exceptions.
J'ai rencontré ce problème plusieurs fois et je suis sûr que c'est un problème commun qui doit avoir une solution commune.
Comment puis-je en toute sécurité de l'appel d'une méthode asynchrone sans attendre le résultat?
Mise à jour:
Pour les personnes de suggérer que j'ai juste à attendre le résultat, c'est le code qui est de répondre à une requête web sur notre service web, ASP.NET l'API Web). En attendant, dans un contexte de l'INTERFACE utilisateur conserve le thread d'INTERFACE utilisateur gratuit, mais en attente d'une requête web appel d'attendre la fin de la Tâche avant de répondre à la demande, augmentant ainsi les temps de réponse avec pas de raison.