Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

265
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda