Quote:I don't think you can multi thread the inline process it might even be slower because all threads still need to manipulate a single destination array/string list.
Well, that's how multithreading works.
The destination array should be "the set of already inlined files".
Multiple threads then can operate on multiple portions of DatVille, each one accessing and contributing to that array.
Of course, the access to that array (both read+write) must be protected by a semaphore (in C#: lock(...)).
Any thread that finds a part that is not yet inlined, will add it to that array so other threads will find it there.