What is the best and safest way to pass data from several different threads to a single thread. Can someone point me to a book or some other source that has good information on threading in C #.