creo que la gente en internet y sobre todo en RUclips necesita cerveza porque el resultado que genialidad para explicar algo que le dan tanta vuelta y por fin lo entendí
Excelente, muy bien explicado. Me gustan tus publicaciones. Como programadores hay conceptos que para entenderlos te pueden llevar semanas de búsqueda y lecturas, gracias por compartir en 15 minutos lo que seguro al inicio te pudo llevar más que eso.
la recomendación es que async/await sean utilizados en operaciones de I/O (web services, bases de datos, networking, file system, etc) para que el procesador se libere y pueda ejecutar código mientras espera la respuesta del task. Otra ventaja es que en métodos anidados, si ponemos un await y la tarea aún sigue ejecutándose, en el método padre se puede seguir ejecutando código hasta que se encuentra un nuevo await
la parte "en el método padre", supongo que te refieres al caller o el método donde llamamos a resultados asíncronos, en este caso no continúa ejecutándose (a menos que no uses el `await` delante del método asíncrono que estás llamando desde el caller), si usamos await por delante, el caller espera el resultado, la diferencia en este caso reside en el hecho de que nuestro caller "se libera", es decir nuestro caller no se bloquea esperando el resultado del await, solo se "encola" la tarea hasta que el resultado del await llegue, liberando al CPU para que pueda hacer otras tareas, una vez el resultado del await llegue, nuestro proceso principal (del caller) se reanuda, continuando la ejecución regular, como si de un programa síncrono se tratara. Lo importante a notar acá es que ya no bloqueamos a nuestro hilo principal cuando estamos esperando por resultados I/O sino se pone en pausa y notifica al procesador que se libere hasta que `await` nos avise que ya podemos reanudar nuestra ejecución principal, de esta forma nuestro procesador tendrá tiempo para hacer otras cosas. Una analogía fácil sería que antes hacíamos colas para que nos atiendan (las personas por delante eran nuestros procesos I/O) pero ahora tu puedes sacar una cita y simplemente vas a la hora que te toca en lugar de estar esperando en la cola (en este caso te evitas el tiempo de hacer cola y en su lugar puedes hacer otras cosas de tu día a día)
La imolementacion de Task es genial, es un wrapper de Threads que hace que manipular hilos se muy sencillo. Vengo de las época de ma eso de hilos en C, C++ y viejas versiones de .net y Admito que era un dolor de cabeza usarlos, hilos, semáforos, funciones de callback para manipular las respuestas , enviarles parámetros a tareas también tenía su complicación.
Gracias profe. Estaba ejecutando un Process que me guardaba un archivo .pfx en una carpeta y en la siguiente linea inmediatamente buscaba el archivo para obtenerlo, pero al parecer cuando lo buscaba no existía, con esto me di cuenta que tenia que esperar hasta que el proceso terminara de crear el archivo asíncronamente para después hacer uso del archivo
Saludos buen video, anteriormente programe en Windows form pero deje durante unos años de programar ahora que regreso a c# y aprender asp.net eh encontrado muchas cosas nuevas e interesante y tus videos me están sirviendo.
Excelente video, gracias por estos vídeos cortos dónde nos enteramos de ciertas funcionalidades y cosas que son muy útiles y que en algunos caso tenemos que reinventar la rueda por el simple echo de no saber que ya existe algo que soluciona el problema
Hasta que por fin he comprendido las tareas en C#. Solía utilizar Background una herramienta disponible en C# en dónde hacía las tareas en segundo plano tal como respaldar una base de datos en un hilo secundario a tu main.. Gracias por el vídeo 🙏
Hola Hector, muy bueno tu canal, los videos que he visto hasta ahora están muy bien explicados y sin falacias o verdades a medias. Es difícil encontrar videos pros como estos en RUclips y que además estén en español. Gracias.
Buenas, soy nuevo en tu canal. La verdad la teoría la conozco, por lo menos lo básico y en que casos usar estos async, pero no sabia muy bien como implementarlo en .net o como funciona. Tuve que implementar un Quartz y estuve 1 semana aprox para hacerlo y entendia apenas lo que estaba haciendo. Con este video entendi y ahora sé como mejorar el desarrollo que hice. Explicas muy bien lo que aprendiendo solo te puede tomar hasta el quintuple de tiempo. Ahora voy de camino por las buenas practicas, pero tu canal me va ayudar muchisimo. Saludos
tus videos me gustan mucho, he visto varios y abordas inquietudes sobre c# que otros sitios no lo hacen, como este. ojala sigas subiendo cosas, saludos
Hola ! Pasaba a dejarte un comentario agradeciéndote por todos los videos tuyos y lo bien explicado de tu contenido, me estas ayudando mucho a entender cosas que tengo que hacer en mi dia a dia! Gracias y saludos desde Argentina ❤
Excelente video, tus seguidores te pedimos más ejemplos de async await y Windows form. Con ejemplos de casos reales 🙏🙏. Gracias ayudas a muchos. Te amamos Hector
No se si ya tienes videos de Task chaining, el manejo de los token para detener las task y muchas otras funciones que también aplican. Esto es parte importante del desarrollo backend.
muchas gracias por la explicación, por favor sería bueno una lista de curiosidades así, cosas simples pero muy útiles y poco conocidas, al menos para mi.
muy claro el ejemplo. ¿podrias extenderte en la diferencia entre usar task vs thread? con est no logro ver cual es la ganancia de usar uno u otro. gracias
Gracias, solo que me quedo la duda entre Task y Thread, porque pareciera que funcionan de manera similar, aunque imagino que Thread trabaja de diferente forma
Por que se imprime primero tarea interna 2 en el minuto 8:20, si primero se inicializa task y posteriormente task 2 y tienen el mismo sleep de 1 segundo?
muy buenos tus videos hector,, agarrando cosas puntuales. Un dia podrias hacer como generar un setup con click one. para q los nuevos sepan como publicar sus proyectos de winforms
excelente videooo, una duda con esto puedo aplicarlo al llamr un job y esperar a que termine , mi duda es si en los milisegundos tengo que poner el tiempo que puede tardar el job en ejecutar
Man, aviéntate un video donde uses eso de theads pool, donde se puedan lanzar tantos procesos como permita el SO y conforme se vaya liberando/terminando un proceso en corto iniciar otro. El contexto para que me gustaría ocuparlo es para crear un servicio de windows que convierta videos de un formato a otro con ffmpeg, actualmente mi proceso solo convierte un video a la vez pero tarda un friego y son chorro de videos que se generan día a día y quisiera ajustar la aplicación para realizar varios procesos de conversión en paralelo. Saludos!
Si te ha gustado el video puedes apoyarme dejándome un pulgar arriba 👍
Hashtag #pavadas
Excelente bro
Estaria interesante que hicieras un video de como cancelar una operacion de un task :) un saludo!
Explicación clara y puntual. Excelente.
Grande Hector, muchas gracias por el contenido, puro c#lover
creo que la gente en internet y sobre todo en RUclips necesita cerveza porque el resultado que genialidad para explicar algo que le dan tanta vuelta y por fin lo entendí
Hermano.... mira que he buscado información sobre programación asíncrona... en 15 minutos he aprendido más que en 2 horas de clases...Muchas gracias.
Excelente, muy bien explicado. Me gustan tus publicaciones. Como programadores hay conceptos que para entenderlos te pueden llevar semanas de búsqueda y lecturas, gracias por compartir en 15 minutos lo que seguro al inicio te pudo llevar más que eso.
la recomendación es que async/await sean utilizados en operaciones de I/O (web services, bases de datos, networking, file system, etc) para que el procesador se libere y pueda ejecutar código mientras espera la respuesta del task. Otra ventaja es que en métodos anidados, si ponemos un await y la tarea aún sigue ejecutándose, en el método padre se puede seguir ejecutando código hasta que se encuentra un nuevo await
Es como el Join en los threads?
En las interfaces graficas también se necesitan tas tareas e hilos, sino la interfaz se congela hasta que la tarea termine
la parte "en el método padre", supongo que te refieres al caller o el método donde llamamos a resultados asíncronos, en este caso no continúa ejecutándose (a menos que no uses el `await` delante del método asíncrono que estás llamando desde el caller), si usamos await por delante, el caller espera el resultado, la diferencia en este caso reside en el hecho de que nuestro caller "se libera", es decir nuestro caller no se bloquea esperando el resultado del await, solo se "encola" la tarea hasta que el resultado del await llegue, liberando al CPU para que pueda hacer otras tareas, una vez el resultado del await llegue, nuestro proceso principal (del caller) se reanuda, continuando la ejecución regular, como si de un programa síncrono se tratara. Lo importante a notar acá es que ya no bloqueamos a nuestro hilo principal cuando estamos esperando por resultados I/O sino se pone en pausa y notifica al procesador que se libere hasta que `await` nos avise que ya podemos reanudar nuestra ejecución principal, de esta forma nuestro procesador tendrá tiempo para hacer otras cosas.
Una analogía fácil sería que antes hacíamos colas para que nos atiendan (las personas por delante eran nuestros procesos I/O) pero ahora tu puedes sacar una cita y simplemente vas a la hora que te toca en lugar de estar esperando en la cola (en este caso te evitas el tiempo de hacer cola y en su lugar puedes hacer otras cosas de tu día a día)
Excelente explicación y pude comprender el funcionamiento de Task de manera sencilla y por qué se pone el await y demás... sos crack!
Qué buen video, sería bueno que adicional a este video crearas uno explicando Task.FromResult y Task.CompletedTask, saludos hermano!
He comprendido más conceptos de c# que nunca. Felicidades #elpavadas 👍
La mejor explicación para async & await de todo internet 👍
14 minutos bien chingones.... !!
Saludos desde Italia de un paraguayo. Excelentes tus videos!
No le habia entendido a nadie hasta que vi este video. Buena explicacion
Lo explicaste muy bien, sencillo con ejemplos. Me hubiera gustado tener este video 6 años atrás jajaja. Mil gracias
Eres el mejor explicando C#. Gracias por tus videos Bro.
Gracias Hector, aportas mucho a la comunidad, Dios te bendiga!
Excelente. Recibe un saludo desde España...
La imolementacion de Task es genial, es un wrapper de Threads que hace que manipular hilos se muy sencillo. Vengo de las época de ma eso de hilos en C, C++ y viejas versiones de .net y Admito que era un dolor de cabeza usarlos, hilos, semáforos, funciones de callback para manipular las respuestas , enviarles parámetros a tareas también tenía su complicación.
Gracias profe. Estaba ejecutando un Process que me guardaba un archivo .pfx en una carpeta y en la siguiente linea inmediatamente buscaba el archivo para obtenerlo, pero al parecer cuando lo buscaba no existía, con esto me di cuenta que tenia que esperar hasta que el proceso terminara de crear el archivo asíncronamente para después hacer uso del archivo
Saludos desde Cusco, gracias por la explicación, simple y directo, sigue adelante.
Aunque soy solo una aprendiz , tu explicación es super clara!muy bueno
Saludos buen video, anteriormente programe en Windows form pero deje durante unos años de programar ahora que regreso a c# y aprender asp.net eh encontrado muchas cosas nuevas e interesante y tus videos me están sirviendo.
Excelente video, gracias por estos vídeos cortos dónde nos enteramos de ciertas funcionalidades y cosas que son muy útiles y que en algunos caso tenemos que reinventar la rueda por el simple echo de no saber que ya existe algo que soluciona el problema
Hasta que por fin he comprendido las tareas en C#. Solía utilizar Background una herramienta disponible en C# en dónde hacía las tareas en segundo plano tal como respaldar una base de datos en un hilo secundario a tu main..
Gracias por el vídeo 🙏
Eres el único que si explica bien
Me cayó como anillo al dedo, muy bien crack
muy buen video, he aprendido c# contigo, saludos desde Venezuela.
Hola Hector, muy bueno tu canal, los videos que he visto hasta ahora están muy bien explicados y sin falacias o verdades a medias. Es difícil encontrar videos pros como estos en RUclips y que además estén en español. Gracias.
Saludos desde Argentina
Recién empecé a leer sobre métodos async y esto me dejo mas claro de como usarlos. Eternamente agradecido.
Excelente, por fin entendi como hacer un task
hombre excelente video y gran forma de explicar!
Un saludo desde Rep Dom!
Excelente! Tus explicaciones son muy claras, necesitaba entender esto y ha quedado mas que claro!
Gracias a ti entendi este tema despúes de buscar muchos recursos.
Hola, gracias por la explicación, soy tu fan!
Excelente Hector la sigues sacando del estadio. Gracias por compartir conocimiento.
Hola Hector.! este es el primero de tus videos que he visto y dejame decirte que explicas muy bien, te felicito 👏
¡MUY CLARO! Muchas gracias. Enhorabuena Maestro. ✌😃
Extremadamente claro. Soy fan a partir de este video. Saludos.
Buenas, soy nuevo en tu canal. La verdad la teoría la conozco, por lo menos lo básico y en que casos usar estos async, pero no sabia muy bien como implementarlo en .net o como funciona. Tuve que implementar un Quartz y estuve 1 semana aprox para hacerlo y entendia apenas lo que estaba haciendo. Con este video entendi y ahora sé como mejorar el desarrollo que hice. Explicas muy bien lo que aprendiendo solo te puede tomar hasta el quintuple de tiempo. Ahora voy de camino por las buenas practicas, pero tu canal me va ayudar muchisimo. Saludos
Buena explicación, bro. Saludos
Gracias, me ayudó a entender y a poder implementarlo
Me encanta tu canal, explicas muy bien Hector. Y tus videos son super entretenidos de ver. 10/10
Mejor imposible Héctor sos un genioooooooooooooooooooooo.
excelente explicación, saludos ✌
Excelente! Super claro. Muchas gracias.
Magistralmente explicado. Te felicito!!!
Muy buena explicacion, y muy necesaria. Gracias
Muy buen video, estaría padre ver luego una serie de vídeos con task o uno que compare task con thread.
Gracias bro! Excelente video!
Héctor, saludos desde Colombia. Muy buenos los videos.
tus videos me gustan mucho, he visto varios y abordas inquietudes sobre c# que otros sitios no lo hacen, como este. ojala sigas subiendo cosas, saludos
Dios te bendiga mijo
Eres un capo Héctor!, me sirvió de mucho
Buenísimo. Paso a paso desde lo más básico.
Hola ! Pasaba a dejarte un comentario agradeciéndote por todos los videos tuyos y lo bien explicado de tu contenido, me estas ayudando mucho a entender cosas que tengo que hacer en mi dia a dia! Gracias y saludos desde Argentina ❤
Entendible explicación!
Muchas gracias!!
Papaaaaa, sos un groso!! me solucionaste una torta de problemas :3
Video super duro!! Gracias!
Excelente video, tus seguidores te pedimos más ejemplos de async await y Windows form. Con ejemplos de casos reales 🙏🙏. Gracias ayudas a muchos. Te amamos Hector
Puedes hacer uno especificando las funciones y del diccionary, soy fiel seguidor Hector gracias
sos un groso explicando !! gracias papu :*
No se si ya tienes videos de Task chaining, el manejo de los token para detener las task y muchas otras funciones que también aplican. Esto es parte importante del desarrollo backend.
Muy buena explicación!
Claro y directo, Gracias amigo!
Buenisimo el video Hector! Muchas gracias!
Muy buen video, podrías hacer uno de manejo de logs con task.
Quiza
Excelente video. Estoy ingresando en el mundo de asincronismo y este video ha sido de mucha ayuda para seguir aprendiendo estos temas.
muchas gracias por la explicación, por favor sería bueno una lista de curiosidades así, cosas simples pero muy útiles y poco conocidas, al menos para mi.
muy claro el ejemplo. ¿podrias extenderte en la diferencia entre usar task vs thread? con est no logro ver cual es la ganancia de usar uno u otro. gracias
Estaba esperando este video jejeje
Excelente vídeo! muy necesario... Gracias!
Está muy chido, estaría interesante que hicieras un ejemplo de asíncronia con consultas a bases de datos
ruclips.net/video/6pNvTvKJPTQ/видео.html
Excelente video!
Gracias, solo que me quedo la duda entre Task y Thread, porque pareciera que funcionan de manera similar, aunque imagino que Thread trabaja de diferente forma
Excelente explicación Héctor! Este es uno de los temas que más me costó aprender, esta explicación me hubiera salvado de muchas en la universidad 😅
Muy bien video, necesitaba algo asi 👌
Muy bueno amigo gracias
buena explicación crack!
Gracias Hector :D
Por que se imprime primero tarea interna 2 en el minuto 8:20, si primero se inicializa task y posteriormente task 2 y tienen el mismo sleep de 1 segundo?
Gracias por el video muy bueno
Grande el power de leon
Hola como andas?? Excelente explicación, muy bueno
Gracias
muy buenos tus videos hector,, agarrando cosas puntuales.
Un dia podrias hacer como generar un setup con click one. para q los nuevos sepan como publicar sus proyectos de winforms
Quiza si
Muy bueno el video!
Buen vídeo y muy bn explicado . Grax :)
jajaj Esa es! Gracias por los videos! :D preciso!
Wow q tal explicación y con cucharita, gracias!!!!!
Excelente y claro que agradecería más vídeos de hilos.
buenísisisimo, gracias!!!
Bien explicado.
Task abrón!
Buena explicación, gracias
Excelente tus videos Héctor.
Cuánto tiempo te llevó aprender todo lo que sabes?
Eres un crack
excelente videooo, una duda con esto puedo aplicarlo al llamr un job y esperar a que termine , mi duda es si en los milisegundos tengo que poner el tiempo que puede tardar el job en ejecutar
Man, aviéntate un video donde uses eso de theads pool, donde se puedan lanzar tantos procesos como permita el SO y conforme se vaya liberando/terminando un proceso en corto iniciar otro. El contexto para que me gustaría ocuparlo es para crear un servicio de windows que convierta videos de un formato a otro con ffmpeg, actualmente mi proceso solo convierte un video a la vez pero tarda un friego y son chorro de videos que se generan día a día y quisiera ajustar la aplicación para realizar varios procesos de conversión en paralelo. Saludos!
Gracias !!! Que grande