Buenas,
Para estos casos se tiene que usar el bloqueo (lock) o una colección que ya esté sincronizada y además, no se deben usar enumeradores cuando se acceda desde varios procesos porque te devuelve el error que indicas.
Creo que te sería muy util la clase ConcurrentQueue:
http://msdn.microsoft.com/es-es/library/dd267265.aspx
La clase ConcurrentQueue es una cola FIFO donde vas introduciendo valores y puedes obtenerlos desde otro sitio y como está sincronizada, no vas a tener problemas con los hilos.
Mírate también este enlace por si te sirve:
http://msdn.microsoft.com/es-es/library/dd997305.aspx
Saludos.