private void frmTestForm_Load(object sender, EventArgs e) { DbMessenger messenger = DbMessenger.SingleOrDefault(m => m.Name.ToLower() == "messagingtoolkit".ToLower()); if (messenger != null) { DatabasePoller poller = new DatabasePoller(messenger, null); poller.Name = messenger.Name; Thread worker = new Thread(new ThreadStart(poller.StartTimer)); worker.IsBackground = true; worker.Name = messenger.Name; worker.Start(); } }
/// <summary> /// Starts the messenger. /// </summary> /// <param name="action">The action.</param> private EventResponse StartMessenger(EventAction action) { string name = action.Values[EventParameter.MessengerName]; log.InfoFormat("Starting messenger. Name is [{0}]", name); EventResponse response = new EventResponse(); DbMessenger messenger = DbMessenger.SingleOrDefault(m =>m.Name.ToLower() == name.ToLower()); if (messenger != null) { // Start to poll incoming message if (workerThreads == null) workerThreads = new List<Thread>(1); if (pollers == null) pollers = new List<BasePoller>(1); // Check if the poller is already started if (pollers.Exists(p => p.Name.ToLower() == messenger.Name.ToLower())) { log.InfoFormat("Database messenger [{0}] is already started", messenger.Name); return response; } DatabasePoller poller = new DatabasePoller(messenger, this.messageGatewayService); poller.Name = messenger.Name; pollers.Add(poller); Thread worker = new Thread(new ThreadStart(poller.StartTimer)); worker.IsBackground = true; worker.Name = messenger.Name; workerThreads.Add(worker); worker.Start(); log.InfoFormat("Messenger [{0}] is started", name); } return response; }