Orca io quando ho una necessita del genere uso i Web Services e come metodo puoi usare waitAny o waitAll ...

Sui thread dovrebbe esserci qualcosa di simile.
Prova a guardare qui.

http://www.dotnet2themax.it