No se puede convertir implícitamente el tipo de tarea <>

Estoy tratando de dominar la sintaxis del método asíncrono en .NET 4.5. Pensé que había entendido los ejemplos exactamente, sin embargo, no importa cuál sea el tipo de método asíncrono (es decir,Task<T>), Siempre obtengo el mismo tipo de error de error en la conversión aT - Lo que entendí fue bastante automático. El siguiente código produce el error:

No se puede convertir implícitamente el tipo 'System.Threading.Tasks.Task<System.Collections.Generic.List<int>>' a 'System.Collections.Generic.List<int>'

public List<int> TestGetMethod()
{
    return GetIdList(); // compiler error on this line
}


async Task<List<int>> GetIdList()
{
    using (HttpClient proxy = new HttpClient())
    {
        string response = await proxy.GetStringAsync("www.test.com");
        List<int> idList = JsonConvert.DeserializeObject<List<int>>();
        return idList;
    }
}

Falla si explícitamente lanzo el resultado también. Esta:

public List<int> TestGetMethod()
{
    return (List<int>)GetIdList();  // compiler error on this line
}

algo predeciblemente resulta en este error:

No se puede convertir el tipo 'System.Threading.Tasks.Task<System.Collections.Generic.List<int>>' a 'System.Collections.Generic.List<int>'

Cualquier ayuda muy apreciada.

Respuestas a la pregunta(3)

Su respuesta a la pregunta