Concurrency issues - distributed system - C#