private void ProcessPostedEvents(TelemetryEvent telemetryEvent)
 {
     KeyValuePair <int, Subscription>[] array;
     lock (lockObject)
     {
         array = Subscriptions.ToArray();
     }
     KeyValuePair <int, Subscription>[] array2 = array;
     for (int i = 0; i < array2.Length; i++)
     {
         KeyValuePair <int, Subscription> keyValuePair = array2[i];
         Subscription value = keyValuePair.Value;
         bool         flag  = false;
         try
         {
             flag = value.Match.IsEventMatch(telemetryEvent);
         }
         catch (Exception exception)
         {
             PostFaultEvent("VS/Core/TelemetryNotification/FilterFault", value.Match, exception);
             Unsubscribe(keyValuePair.Key);
         }
         if (flag)
         {
             if (value.SingleNotification)
             {
                 Unsubscribe(keyValuePair.Key);
             }
             try
             {
                 TelemetryEvent obj = telemetryEvent.CloneTelemetryEvent();
                 value.Handler(obj);
             }
             catch (Exception exception2)
             {
                 PostFaultEvent("VS/Core/TelemetryNotification/HandlerFault", value.Match, exception2);
             }
         }
     }
 }