We use threading within our game to provide smoother responses and to provide background processing.
Recently we threaded all texture loading for our minimap. Before threading it would lag the game about 150->250ms (1/4 second!) to load in a set of new tiles for the minimap, with our thread we have no glitch at all

Only certain things can be put in threads, mainly AI, data loading and other processing. You cannot easily perform DirectX or TV3D functions as they are generally unsafe.
So your main thread should handle rendering, user input and conversion of thread data (ie. AI positions) to in-game data (aka. AI 3D mesh positions).
Threads are easy imho, but they are fantastic when u get it right
