Maybe you'll need to filter which servers had nice/er ping in previous pinging attempt and ping those first. For example, with my filters I only get around 60 servers that are usable for me. Ping those with 4 at the time and show pings. The rest can be 2-1 at the time. Try to ping recent/favorites first in this selection. Since you are using threads, recent/favorites should be joinable in a second after update, while other servers are still updating in the background.
Cancel updating if I double click on a server before threads are done.
Also, dont query master server each time you run commander, try to save servers once they are downloaded and only re-query on demand. You can ping old list with priority written above. If user is not happy with that, he can still click refresh servers, not just re-ping servers..
It also prevents users for having troubles with joining servers when GameSpy is down..
BTW, I have same problems with "shitty" router, but my router costs $160 and its upgraded with DD-WRT and really tuned like it should be. I'm a IT administrator, running some VPN tunnels and whatnot, so my stuff is usually up-to-date.. Maybe some of the ppl dont notice the router hickup. I do because I have two screens and I browse the web meanwhile I'm pinging servers.
But other then that, keep up the nice work. Didn't manage to check your code, maybe I can pitch in some more suggestions.
Also, I hope you enjoyed beer:D
Edited by subjectx, 26 July 2012 - 07:57 AM.