Método asíncrono que se llama desde el constructor.

Tengo una pregunta relacionada con el método asíncrono al que llamo constructor y cómo resolverlo o si hay un buen trabajo, aquí hay un ejemplo.

public Constructor()
{
 Value = PopulateValueFromDB(); //async method
 CalculateInDB(); // async method
}

public async Task<string> PopulateValueFromDB()
{
 ... do some async calls
 return await ...
}

public async Task CalculateInDB()
{
 ...
 return await ...
}

Básicamente, en el constructor tengo un error, porque no puedo usar aguardar allí, y no puedo hacerlo asíncrono.

Para CalculateInDB puedo hacer que se devuelva sin efecto, luego resuelvo el problema con él, aunque leí en alguna parte que devolver el vacío no es una solución muy buena.

Respecto al método PopulateVlaue ... tengo que devolver algo ...

Entonces, ¿hay un trabajo en torno a si no debería usar esos métodos y sincronizarlos en lugar de asíncronos?

Respuestas a la pregunta(2)

Su respuesta a la pregunta