Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

266
Vistas
¿Cómo hacer que un bloque de código existente sea asíncrono en .net?

Tengo un bloque de código existente con consultas de Linq a SQL y solicitudes HTTP, que me gustaría sincronizar con el propósito de usar menos subprocesos.

¿Bastará con poner el bloque de código en un método asíncrono, así?

 public async Task<Customer> ProcessACustomer() { return await GetCustomer(); } public Task<Customer> GetCustomer() { // Linq to SQL query here // HTTP request here Customer customer; return Task.FromResult<Customer>(customer); }

... o tengo que hacer que cada parte de la lógica en GetCustomer() sea asíncrona para lograr esto?

Mi obstáculo aquí es que tengo un montón de lógica en ese método (simplificado anteriormente), por lo que el tiempo será un problema. Además, parece que no puedo convertir mis consultas Linq To SQL a asincrónicas, ya que los métodos de extensión asincrónica no están disponibles por alguna razón (System.Data.Linq.Table no contiene una definición para FirstOrDefaultAsync() f.ex.) .

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

¿Bastará con poner el bloque de código en un método asíncrono, así?

No. El método GetCustomer no es asíncrono. Sincrónicamente realiza su trabajo y luego devuelve una tarea completada. Esto no guardará ningún hilo.

¿Tengo que hacer que cada parte de la lógica en GetCustomer() sea asíncrona para lograr esto?

Si desea convertir a async , debe comenzar en el extremo opuesto. No comience con el objetivo de hacer que ProcessACustomer (o GetCustomer ) sea asíncrono. En su lugar, comience con la API de nivel más bajo. Cualquiera que sea su método de acceso a la base de datos, hágalo asíncrono primero y luego deje que el async crezca a partir de ahí.

Mi obstáculo aquí es que tengo un montón de lógica en ese método (simplificado anteriormente), por lo que el tiempo será un problema.

Esta es una compensación clásica. Puede valer la pena convertirlo a async , o puede valer la pena comprar algunos servidores más en su lugar.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda