Well, I've spent the last few days (in spare time) rewriting my threading stuff. I had to, because the lighting passes pretty much required me to go from doing lighting per chunk to the entire world at the start of the game. I've just now gotten it working. I think I did come up with a generic approach to submitting this to be processed, given a list of things to process (chunks, blocks, etc), the method that actually performs the process, and the number of threads to do the work. So, you can say...Process this list of chunks, using the method GenerateTerrainForChunk for each chunk in the list, and split up the work among 20 threads. So far...it appears to be working very well. Now I can move forward. So, now I can move forward...time to get the infinite terrain stuff DONE with and move on to more fun stuff.