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
I'd use one thread to job the entire process. That is generating the mail body and sending. Simply because generating the mail body won't take time, but send the email will.
Also if you are using the SMTP server that comes with Windows, then you can simply drop your email in the queue folder and the smtp server will take care of sending the emails.
So you could start multiple threads (keeping a cap on the number) where each thread does it's job. If you're working with sat a collection of jobs (the data) then you could data parallelize (that is split the data into chunks that match the number of core on the system for example and shoot of the jobs (the threads).
Using Tasks will make all of this quite a bit simpler either way you go, that is 2 threads to send one email or one thread to do the entire job but using multiple threads to do multiple jobs in parallel.