Help implementing multithreading in a distributed system, please? - C#