Ok so I got the multithreaded tag extraction going. Here's how it works:
Application starts, you specify the search locations (you can pick a root, a folder, a mapped network drive, or a network location (browse windows shares, I haven't tested this with samba/linux yet but I will eventually) YES that means UNC paths!!

click "scan".
One thread opens for each search location, the program scans for files and dumps the filenames into a list of some kind (arraylist, etc).
when the Application.Idle event occurs, the application checks to see if there's a tag processing thread running. If not, it creates a TagProcessor class instance using the array list, then then creates a new arraylist for the search threads to dump in. A thread is created for the tagprocessor class and started. The tagprocessor class processes all of the tags and stores the data into the database (right now it just dumps to a listview in the test gui, but I'll be writing in batches using sql2000 or MDSE or SQL2005Express + xml).
When the tagprocessor class is finished, it marks its thread as "ready". on idle, the program sees no thread running, checks the list for any unprocessed files, if the list is empty exist, it exits. If the list is not empty, it takes those, creates a new dump list, and continues until there's no more left.
So while the computer is still searching for more files, it's also processing the ones it already foudn in another thread.
And holy crap it's fast (I'm using the BASS library for tag processing). For the same directory, it processed faster than Tag & Rename (then again Tag & rename searches THEN processes, not at the same time..). It seems stable, except it was hanging on a 0 byte mp3 file that got corrupted somehow, if I can find that bug I'm golden.
Once I dump the data into the DB, functionality (queues, playlists, sorting, song selection, artwork display, etc) can be implemented and I can test them in the windows forms test gui. That shouldn't take too long cause I'm really getting excited about this. Once that's done.. it's DirectX time

Never done it. This will be interesting.
When I get some demonstrable forms stuff done I'll post screenies.
Stay tuned.