If I read your response correct @matt.mccormick. Your saying that the code snippet included in the first comment is correct and should work with multiple threads?
Create incense of reader:
typedef itk::ImageSeriesReader< FloatImageType4D > ReaderType;
ReaderType::Pointer reader = ReaderType::New();
Create instance of ImageIO:
typedef itk::GDCMImageIO ImageIOType;
ImageIOType::Pointer dicomIO = ImageIOType::New();
One more question regarding your comment seen below. Your simply saying that each reader must read its own file (they are not allowed to read the same file), right?
Have a great day and thank you for replying