We had a strange issue at work – we had a misbehaving server, who worked perfectly well with one client but had strange issues when several clients connected to it. The server would broadcast a message to all of its clients but only one client would receive that specific message, re-sending the message would fix the problem occasionally but it wasn’t a very consistent behavior.
I’ve managed to find the root of the issue and created a simplified version of the issue. can you spot the bug in the following code?
public class Server
{
public void SendPingToClients(IEnumerable<client> clients)
{
foreach (var client in clients)
{
Task.Factory.StartNew(() => Ping(client));
}
}
public void Ping(Client client)
{
Console.WriteLine("ping sent to client " + client.Id);
}
}
Happy coding!Labels: .NET, .NET 4, C#