Como sugiere assylias he modificado el código para ejecutar las peticiones de varios subprocesos. En caso de que necesite hacerlo, estas son algunas de las valiosas informaciones :
1 - Crear un hilo de seguridad procedimiento para solicitar y asignar diferentes requestID
a sus peticiones. Pasar estos argumentos a processResponseEvent
a través de la eventloop
función. Esto le permitirá hacer una verificación sobre el mensaje que recibe, mediante el uso de una simple condición:
if (msg.CorrelationID != requestID)
{
System.Console.WriteLine("WRONG ID ");
return;
}
2 - Hacer su solicitud en paralelo, lo que significa que se adjunta la mencionada solicitud en un bucle, tales como :
WaitHandle[] waitHandles = new WaitHandle[numOfThreads];
for (int i = 0; i < numOfThreads; i++)
{
var j = i;
var handle = new EventWaitHandle(false, EventResetMode.ManualReset);
var thread = new Thread(() =>
{
/// CALL HERE YOU REQUEST PROCEDURE FROM STEP 1
handle.Set();
});
waitHandles[j] = handle;
thread.Start();
}
foreach (var ee in waitHandles)
ee.WaitOne();
Al final no va a aumentar el tiempo de espera para cada solicitud pero ya que están realizando un grupo de ellos juntos que aún vamos a ahorrar un MONTÓN de tiempo.
Ps: se puede usar la variable i
(de for (int i = 0; i < numOfThreads; i++)
) como requestID
.