Tengo un método void DoWork(object input)
que tarda aproximadamente 5 segundos en completarse. He leído que Thread
es más apropiado que ThreadPool
para estas operaciones más largas, pero he encontrado un problema.Tema: ¿Cómo reiniciar el hilo una vez completado?
Hago clic en un botón que llama al threadRun.Start(input)
que se ejecuta y completa bien. Hacer clic en el botón de nuevo y recibir la siguiente excepción:
Thread is running or terminated; it cannot restart.
Puede que no "reutilización" de un hilo? ¿Debo usar ThreadPool? ¿Por qué el hilo es "más adecuado para operaciones más largas" en comparación con ThreadPool? Si no puede reutilizar un hilo, ¿para qué usarlo (es decir, qué ventajas ofrece)?
Acabo de revisar un código mío y recreo el hilo cada vez Necesito reutilizarlo. Hice esto ya que estaba obteniendo exactamente el mismo error en mi código también. En mi caso, no fue demasiado costoso hacer esto, así que no investigué más. Para – ChrisF
hilo vs ThreadPool mira esto [post StackOverflow] [1] [1]: http://stackoverflow.com/questions/230003/thread-vs-threadpool –