Jak bezpiecznie wywołać metodę asynchroniczną w C # bez oczekiwania

mamasync metoda, która nie zwraca danych:

public async Task MyAsyncMethod()
{
    // do some stuff async, don't return any data
}

Nazywam to z innej metody, która zwraca niektóre dane:

public string GetStringData()
{
    MyAsyncMethod(); // this generates a warning and swallows exceptions
    return "hello world";
}

PowołanieMyAsyncMethod() bez oczekiwania na to powoduje „Ponieważ to połączenie nie jest oczekiwane, bieżąca metoda jest kontynuowana przed zakończeniem połączenia„Ostrzeżenie w studio wizualnym. Na stronie tego ostrzeżenia jest napisane:

Należy rozważyć wyłączenie ostrzeżenia tylko wtedy, gdy masz pewność, że nie chcesz czekać na zakończenie asynchronicznego wywołaniawywoływana metoda nie spowoduje żadnych wyjątków.

Jestem pewien, że nie chcę czekać na zakończenie połączenia; Nie potrzebuję ani nie mam czasu.Ale połączeniemoc zgłaszać wyjątki.

Kilka razy natknąłem się na ten problem i jestem pewien, że jest to powszechny problem, który musi mieć wspólne rozwiązanie.

Jak bezpiecznie wywołać metodę asynchroniczną bez oczekiwania na wynik?

Aktualizacja:

Dla osób sugerujących, że oczekuję rezultatu, jest to kod, który odpowiada na żądanie internetowe w naszej usłudze internetowej (ASP.NET Web API). Oczekiwanie w kontekście interfejsu użytkownika powoduje, że wątek interfejsu użytkownika jest wolny, ale oczekiwanie w wywołaniu żądania sieciowego będzie czekać na zakończenie zadania przed udzieleniem odpowiedzi na żądanie, zwiększając tym samym czas odpowiedzi bez powodu.

questionAnswers(7)

yourAnswerToTheQuestion