que estaba leyendo acerca de la Task Parallel Library y el artículo decía:¿Las tareas de .Net 4.0 deben ser siempre el método preferido para las aplicaciones de múltiples subprocesos?
En .NET Framework 4, las tareas son la API preferido para la escritura multi-hilo, asíncrona y código paralelo
Pero también dice que usan el ThreadPool detrás de las escenas. Lo que me cuesta entender es si Tasks solo debe usarse cuando uses ThreadPool (y entonces "Thread versus Task" sería equivalente a "Thread versus ThreadPool"), o si Microsoft tiene la intención de que se usen tareas. en cualquier lugar se requieren múltiples hilos, sin las consideraciones inherentes al dilema "Thread versus ThreadPool".
Por lo tanto, si las tareas se utilizan en cualquier lugar, se requieren varios hilos?
Tengo entendido que las tareas de larga ejecución son las más adecuadas para los hilos, mientras que las tareas más cortas son mejores para ThreadPool. También está el tema del primer plano versus el fondo. ¿La tarea realmente determina si la función transferida es de larga ejecución, o si debe estar en primer plano o en segundo plano? No veo cómo podría. Entonces, ¿cómo podría preguntarse si un ThreadPool es la mejor ruta o no? Y si siempre usa un ThreadPool, ¿debería uno continuar usando un hilo cuando un ThreadPool no es apropiado? – Bob
Tiene razón, no podía saber si la tarea es de larga duración o no, ese es el problema de detención. Por lo que entiendo, el tiempo de ejecución puede determinar si su consulta o función está fuertemente relacionada con el cálculo o con IO, y elige las estrategias en consecuencia. – cunningdave
No veo cómo la longitud de la tarea se relaciona con la pregunta de Threadpool. El propósito de un Threadpool es minimizar la sobrecarga de crear y matar hilos al reutilizar la asignación de hilos con tareas arbitrarias. Pero un Threadpool se implementa mediante Threads, administrado por un árbitro. No estoy seguro si entregar una tarea larga a un grupo es realmente un perjuicio, aparte de tal vez cómo maneja la gestión de subprocesos. De vuelta a la Q, el tiempo de ejecución puede elegir un enfoque más sofisticado dependiendo de lo que determine que es la mejor estrategia. es decir, puede realizar Asynch en un hilo utilizando PostMessage. – cunningdave