That's a pretty good idea. One other thing I would do would be to add some other communication mechanism where the 2nd .exe let's the first know when to put stuff in the queue.
I could see where if one .exe is running (the producer), but the 2nd isn't running (the consumer to take stuff out of the queue), you'd eventually flood the memory.
Maybe it would just be a matter of limiting the queue size as well.