síncrono sincronos sincrono qué programacion metodo informatica entre ejemplos diferencias comunicacion await asíncrono async asincronos asincrono asincrona c# asynchronous f#

c# - sincronos - qué es síncrono y asíncrono



¿Es asíncrono en C#la misma implementación que en F#? (1)

Ellos son diferentes. La principal diferencia es que C # usa la Task<T> .NET estándar Task<T> para representar cálculos asincrónicos, mientras que F # usa su propio tipo llamado Async<T> .

Más específicamente, las diferencias clave son:

  • El método asíncrono AC # crea una Task<T> que se inicia de inmediato (modelo de tarea en caliente ), mientras que F # crea un cálculo que debe iniciar explícitamente (modelo de generador ). Esto significa que los cálculos de F # son más fáciles de componer (puede escribir abstracciones de nivel superior).

  • En F # también obtiene un mejor control sobre cómo se inicia el cálculo. Puede iniciar un cálculo utilizando Async.Start para iniciarlo en segundo plano o Async.StartImmediate para iniciarlo en el subproceso actual.

  • Los flujos de trabajo asíncronos de F # admiten la cancelación automáticamente, por lo que no tiene que pasar a CancellationToken .

  • Quizás otra consecuencia del primer punto es que los flujos de trabajo asíncronos de F # también admiten la recursión de cola, por lo que puede escribir flujos de trabajo recursivos (esto no funcionaría fácilmente en C #, pero C # no usa este estilo de programación)

Escribí un artículo más detallado sobre este tema: C # asincrónico y F # (II.): ¿En qué se diferencian?

¿Es la implementación asíncrona en C # 4.5 exactamente la misma que en F # 2 en la forma en que se usan los hilos?