It depends how many cores (or processors) you have.
If you only have a single processor, then splitting the work up amongst different threads will probably increase the overall processing time because of the cost of switching between threads.
However, if you have multiple cores (preferably 4 or more) and are using .NET 4.0 or later, then parallelizing the work may well speed things up.
You don't need to do this manually. If you use PLINQ's AsParallel extension method, then it will split the work up for you into chunks using the available cores and then recombine the results after completion.
Here's a quick example of using AsParallel which is applied to the collection to be parallelized:
Dim dirPath As String = "c:\windows\system32"
Dim fileNames As String() = (From filePath In Directory.EnumerateFiles(dirPath).AsParallel
For Each fileName As String in fileNames
Notice that there are issues in using Take, Skip etc. in a parallel query. Doing so, may result in the work being done sequentially rather than in parallel. However, it should be OK to use them on the collection before you apply the AsParallel extension method.