¿Cómo detectar excepciones de un ThreadPool.QueueUserWorkItem?

Tengo el siguiente código que arroja una excepción:

ThreadPool.QueueUserWorkItem(state => action());

Cuando la acción arroja una excepción, mi programa se bloquea. ¿Cuál es la mejor práctica para manejar esta situación?

Relacionado:Excepciones en .Net ThreadPool Threads

Respuestas a la pregunta(5)

Su respuesta a la pregunta