Foros del Web » Programación para mayores de 30 ;) » .NET »

Es correcto el uso de System.Collections.Queque

Estas en el tema de Es correcto el uso de System.Collections.Queque en el foro de .NET en Foros del Web. Buenas foreros !!! Tengo una duda de "Funcionalidad" sobre si la forma en la que estoy usando este objeto es la correcta o no. Tengo ...
  #1 (permalink)  
Antiguo 02/01/2009, 18:08
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
Es correcto el uso de System.Collections.Queque

Buenas foreros !!!

Tengo una duda de "Funcionalidad" sobre si la forma en la que estoy usando este objeto es la correcta o no.

Tengo una aplicación de Sockets. Servidor y Clientes.

Cada cliente se conecta al servidor, y manda un mensaje para enviar a todos los clientes conectados. Ok, funciona bárbaro, el envio de mensajes es asíncrono y va todo perfecto.

El problema es el siguiente:
Cuando se conectan dos a la vez y envian mensajes los dos a la vez a veces al recién conectado no le llega el mensaje del otro cliente recién conectado.

Para solucionar el problema, lo que hice es meter los mensajes en un Queque y en un método gestionado por una Hebra, enviar los mensajes del Queque:

Código:
        private void MetodoCola()
        {

                while (true)
                {
                    if (_Cola.Count > 0)
                    {
                        this.Invoke((MethodInvoker)delegate
                        {
                            ClsMensaje objMensaje = (ClsMensaje)_Cola.Dequeue();
                            EnviarMensaje(objMensaje.ToString())
                        });
                    }
                }            
        }
Este método es ejecutado por una hebra, y en otra parte de la aplicación, voy metiendo los mensajes en el Queque.

¿Ven correcto esta forma de trabajar? Espero haberme explicado y puedan darme sugerencias.

Desde ya, muchos saludos.
__________________
Charlie.
  #2 (permalink)  
Antiguo 02/01/2009, 19:38
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Es correcto el uso de System.Collections.Queque

creo que para este tipo de casos es mejor el uso de un MessageQueue por algo ya esta administrado este tipo de escenarios.

PD: depende de tu escenario Cliente Servidor y donde hosteas el server y si la cola sea publica o privada y administrada por otra aplicacion de replicacion.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:11.