Pessoal, estou construindo um conjunto cliente-servidor O servidor é em C# e o cliente é em C++ nativo.
O meu servidor fica escutando uma determinada porta, aguardando a conexão de alguns clientes, o servidor também é multitarefa, podendo aceitar diversas conexões simultaneamente, porém estou com um problema muito preocupante, veja: Até agora usei duas threads as duas executam um laço de repetição infinito. A primeira thread(com o laço infinito) fica constantemente verificando se há novas conexões a serem aceitas, se existe alguma, ela adiciona a conexão em um List<TcpClient>, a segunda thread (também com loop infinito) fica constantemente verificando se essas conexões estão ativas, ou seja, se alguma delas não estiver, ele remove ela do List<TcpClient>. O meu problema é que quando fui monitorar o consumo de recursos da aplicação pelo gerenciador de tarefas, percebi que está consumindo incríveis 30% do meu processador (I5 4460 3.2 GHz). Estou achando esse consumo absurdo para uma aplicação relativamente simples.
Laços de repetições infinitos consomem tanto assim? Ou o fato de usar Threads já contribui para esse consumo? Como eu poderia resolver este problema?
Pergunta
thewesker
Pessoal, estou construindo um conjunto cliente-servidor
O servidor é em C# e o cliente é em C++ nativo.
O meu servidor fica escutando uma determinada porta, aguardando a conexão de alguns clientes, o servidor também é multitarefa, podendo aceitar diversas conexões simultaneamente, porém estou com um problema muito preocupante, veja:
Até agora usei duas threads as duas executam um laço de repetição infinito. A primeira thread(com o laço infinito) fica constantemente verificando se há novas conexões a serem aceitas, se existe alguma, ela adiciona a conexão em um List<TcpClient>, a segunda thread (também com loop infinito) fica constantemente verificando se essas conexões estão ativas, ou seja, se alguma delas não estiver, ele remove ela do List<TcpClient>.
O meu problema é que quando fui monitorar o consumo de recursos da aplicação pelo gerenciador de tarefas, percebi que está consumindo incríveis 30% do meu processador (I5 4460 3.2 GHz). Estou achando esse consumo absurdo para uma aplicação relativamente simples.
Laços de repetições infinitos consomem tanto assim? Ou o fato de usar Threads já contribui para esse consumo? Como eu poderia resolver este problema?
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.