public static void Run() { Console.WriteLine("[EventAgregator] Enter run"); while (true) { if (subscriptions != null && files.Count > 0) { string file = string.Empty; try { file = EventAgregator.files.Take(); } catch (Exception e) { Console.WriteLine("[EventAgregator] Run exception {0}", e.Message); continue; } ProcessingEvent evt = new ProcessingEvent(); evt.FileName = file; subscriptions(evt); } if (waitHandle.WaitOne(50)) { break; } } Console.WriteLine("[EventAgregator] Exit run"); }
public void Subscription(ProcessingEvent evt) { Monitor.Enter(evt); if (evt.Handled) { Monitor.Exit(evt); return; } evt.Handled = true; EventAgregator.UnSubscribe(this.Subscription); Monitor.Exit(evt); file = evt.FileName; }