Skip to content

Latest commit

 

History

History
44 lines (33 loc) · 1.03 KB

README.md

File metadata and controls

44 lines (33 loc) · 1.03 KB

emaresa1911

Esta es una función sincrónica:

public static List<Libro> Listar()
{
    var resultado = new List<Libro>();
    using(var con=new Contexto()) // garantiza que con se va a cerrar
    {
        resultado = con.Libros.Include(l=>l.IdCategoriaNavigation).ToList();
    }
    return resultado;
}

Es decir, se ejecuta así:

  1. Inicia la función.
  2. Lee la base de datos, mientras se lee la base, la ejecución va a estar detenido.
  3. Y se regresa el dato final.

La versión asincrónica:

public static async Task<List<Libro>> ListarAsync()
{
    var resultado = new List<Libro>();
    using (var con = new Contexto()) // garantiza que con se va a cerrar
    {
        resultado = await con.Libros.Include(l => l.IdCategoriaNavigation).ToListAsync();
    }
    return resultado;
}

Y se ejecuta de la siguiente manera:

  1. Inicia la función generando un hilo de proceso nuevo.
  2. Se lee la base de datos, y se detiene el hijo de ejecución
  3. Y regresa el dato final