NOTE:
i did a complete rework of my question. you can see the original question via the change-history.
i\'m in the need of a "mighty&qu
If you have .Net 4.0, use a BlockingCollection. It deals with all the mess for you, including the final point, via the CompleteAdding method.
If you have an earlier .Net, then upgrade (i.e., I'm too lazy to explain how to implement something that has already been done for you.)
EDIT: I don't think your problem warrants threading at all. Just create all the emails well in advance and then sleep till the appointed time.