¿Cómo puedo esperar un método asíncrono sin un modificador asíncrono en este método principal?

Tengo un método que quiero esperar, pero no quiero causar un efecto dominó pensando que cualquier cosa puede llamar a este método de llamada y esperar. Por ejemplo, tengo este método:

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

Estoy llamando:

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

Esto no funcionará porque tengo que poner "async" en la firma del método paraSave() y entonces no puedo volverbool Tengo que hacerloTask<bool> pero no quiero a nadie esperando elSave() método.

¿Hay alguna manera de suspender la ejecución del código como esperar o de alguna manera esperar este código sin el modificador asíncrono?

Respuestas a la pregunta(2)

Su respuesta a la pregunta