Why does this not work...

 From:  SteveMacc (STEVEH)
4687.8 
In your model, the thread obeject is not joined properly. It has an open edge running as a spiral round the thread. If you redo the thread so that this doesn't happen, then slice of the ends with a trim, you can add planar ends to make a solid. This solid will then boolean from the block.