There should be a search queue, so that when one search finishes it would pick up the next and start it. This I believe could be implemented very easily with just a vector or such and a position pointer, just do the first search, when it completes test ++pointer to the length, and then do that search... etc. For me at least it would be very useful.
What Do You Think?