Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

270
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!