Actualización:
Después de que respondieron a esta pregunta (! Hace mucho tiempo) me di cuenta de que no es cierto que las tareas siempre hasta la terminación - hay una pequeña, digamos caso "esquina", donde las tareas pueden no terminar.
El motivo es que: como he respondido anteriormente, las tareas son esencialmente hilos; pero son de fondo hilos. Los subprocesos de fondo se cancelan automáticamente cuando finalizan todos los subprocesos en primer plano. Entonces, si no hace nada con la tarea y el programa finaliza, existe la posibilidad de que la tarea no se complete.
Siempre debe esperar en las tareas. Se puede encontrar más información en el excellent answer Jon gave me.
original:
tareas están programadas para el ThreadPool, lo que significa que son esencialmente threads¹ (en realidad, se encapsulan hilos).
Desde el Thread documentation:
No es necesario mantener una referencia a un objeto hilo una vez que se haya iniciado el hilo. El subproceso continúa ejecutándose hasta que se completa el procedimiento de subproceso.
Así que, no, no es necesario que conserve una referencia.
Además, el documentation afirma que la mejor forma de crear una tarea es utilizarlo de fábrica:
También puede utilizar el método StartNew para crear e iniciar una tarea en una operación. Esta es la manera preferida para crear e iniciar tareas si la creación y la programación no tienen que ser separados (...)
espero que ayude.
¹ De acuerdo a la documentation:
Una tarea representa una operación asíncrona , y en cierto modo se se asemeja a la creación de un nuevo elemento de trabajo hilo o ThreadPool, pero a un mayor nivel de abstracción.
Después de un tiempo encontré algo pequeño sobre esto y pensé en compartirlo, para mayor completitud ... Ver la actualización a continuación. –