public void addSetAlarma(string alarmID, string tipoAlarma, string serialNum) { lock (listaAlarmasIDSerials) { AlarmaIDSerial al = new AlarmaIDSerial(); al.ID = alarmID; al.tipoAlarma = tipoAlarma; al.SerialNum = serialNum; listaAlarmasIDSerials.Enqueue(al); } }
void enviarListaSetAlarmas() { Helpers.GetInstance().DoLog("Comienza Task de envio de SET Alarmas..."); while (!finalizarPoolSetAlarmas.WaitOne(2000)) { Helpers.GetInstance().DoLog("Esperando datos de Alarmas..."); continuarPoolSet.WaitOne(); // Espera que haya datos... continuarPoolSet.Reset(); Helpers.GetInstance().DoLog("Hay datos de Alarmas encolados"); if (!finalizarPoolSetAlarmas.WaitOne(0)) { try { if (listaAlarmasIDSerials != null) { List <AlarmaIDSerial> listaToSend = new List <AlarmaIDSerial>(); lock (listaAlarmasIDSerials) { while (listaAlarmasIDSerials.Any()) { AlarmaIDSerial IDS = listaAlarmasIDSerials.Dequeue(); listaToSend.Add(IDS); } } if (listaToSend.Count > 0) { //string errDesc = ""; //int errCode = -1; //WebServiceAPI.GetInstance().AssignSerialnumsAlarmas(listaToSend, out errDesc, out errCode); string errDesc = ""; int errCode = -1; bool done = false; while (!done && !finalizarPoolSetAlarmas.WaitOne(0)) { WebServiceAPI.GetInstance().AssignSerialnumsAlarmas(listaToSend, out errDesc, out errCode); if (errCode == (int)StatusCode.OK) { done = true; } else { Helpers.GetInstance().DoLog("Error al enviar serials de Alarmas: " + listaToSend.ToString() + " " + errDesc); Thread.Sleep(1000); } } Helpers.GetInstance().DoLog("Hecha la asignacion de serialnums en Alarmas."); PoolGetAlarm.GetInstance().ContinuarPoolGet(); // si ya llegaron todos los envios. //Helpers.GetInstance().DoLog("Hizo ContinuarPool de GetAlarm()"); } } } catch (Exception ex) { Helpers.GetInstance().DoLog("EXCEPCION en enviarListaSetAlarmas:" + ex.Message); } } } Helpers.GetInstance().DoLog("Finaliza Thread de actualizacion de SetAlarmas"); }