No, of course these are
absolutely different things. Thread pool is just the automated thread re-use mechanism. As to the queues used in thread synchronization, it does not really matter how the threads were obtained. Isn't that obvious? Threads are threads; when you set up the thread's properties and are using it already, it works in exact same way, not matter the way you obtained it.
The queuing mechanism and inter-thread invocation is explained in detail in my Tips & Tricks article
"Simple Blocking Queue for Thread Communication and Inter-thread Invocation"[
^], complete with source code and usage sample. One interesting case is using delegate instances as queue elements, which makes the mechanism of invocation extremely flexible, similar the invocation mechanism used with UI threads with WPF and
System.Windows.Forms
.
—SA