Jak mogę oczekiwać na metodę asynchroniczną bez modyfikatora asynchronicznego w tej metodzie nadrzędnej?

Mam metodę, na którą chcę czekać, ale nie chcę powodować efektu domina, myśląc, że cokolwiek może nazywać tę metodę wywołania i czekać na nią. Na przykład mam tę metodę:

public bool Save(string data)
{
   int rowsAffected = await UpdateDataAsync(data);
   return rowsAffected > 0;
}

Dzwonię:

public Task<int> UpdateDataAsync()
{
  return Task.Run(() =>
  {
    return Data.Update(); //return an integer of rowsAffected
  }
}

To nie zadziała, ponieważ muszę wpisać „async” w sygnaturze metody dlaSave() a potem nie mogę wrócićbool Muszę to zrobićTask<bool> ale nie chcę, żeby ktokolwiek oczekiwałSave() metoda.

Czy istnieje sposób na zawieszenie wykonywania kodu, takiego jak oczekiwanie, lub oczekiwanie na ten kod bez modyfikatora async?

questionAnswers(2)

yourAnswerToTheQuestion