protected override void WriteException(Exception exceptionToFormat, Exception outerException)
        {
            EventTopicException ete = exceptionToFormat as EventTopicException;

            if (ete != null)
            {
                foreach (Exception ex in ete.Exceptions)
                {
                    base.WriteException(ex, null);
                }
            }
        }
 public void Work()
 {
     CanFireTopic.WaitOne();
     try
     {
         topic.Fire(this, EventArgs.Empty, item, PublicationScope.WorkItem);
     }
     catch (EventTopicException ex)
     {
         ThrownException = ex;
         Application.ExitThread();
     }
 }