I have a question that making me crazy. If there's a better way to do this, I'm all ears.

I am developing an application that will query GPS enabled phones. The phone aliases are stored in a local database, along with the last location found. So people can go to a web site and get positions on a map pretty quickly.

I have a back end application (windows forms) that will go and query the phones every 15 minutes and then populate the database. This all works fine.

The problem is that the queries take about 20-25 seconds. We want to have over 200 phones. On the low side, that would still take 30 minutes.

I've tried to multithread the application, but it simply won't work. Thread locking just makes sure one query finishes before another begins so no faster. Any ideas?