Beispiel #1
0
 public void PublishDataForKey(string key, object data)
 {
     if (_handlers.ContainsKey(key))
     {
         IList <DataHandler> handlers = null;
         using (_handlers.GetWriteLock())
         {
             handlers = new List <DataHandler>(_handlers[key]); //Copy
             _handlers[key].Clear();
         }
         //Call
         ThreadPool.QueueUserWorkItem(x =>
         {
             foreach (var handler in handlers)
             {
                 handler.OnDataAvailible(data);
             }
             handlers.Clear();
         });
     }
 }