protected virtual void MailboxWorkerMessageRecieved(object sender, MessageInfoEventArgs e) { lock ( synclock ) { Total++; IMimeFileWorker worker = Activator.CreateInstance <Tmime>(); worker.BeginProcessing += new MessageInfoHandler(MimeFileWorkerBeginProcessing); worker.DoneProcessing += new MessageInfoHandler(MimeFileWorkerDoneProcessing); worker.ProcessingError += new MessageInfoHandler(MimeFileWorkerProcessingError); worker.ProcessingWarning += new MessageInfoHandler(MimeFileWorkerProcessingWarning); WorkPool.QueueWorkItem <string>(x => worker.Process(ConnectInfo.PathInfo, x), e.Info); } string message = string.Format("Message {0} received. ", Path.GetFileName(e.Info)); Log(message); }
private void QueueMessages(string directory) { string[] files = Directory.GetFiles(directory); if (files.Length > 0) { Log("Found one or more existing messages queued on disk.\r\nAdding them to work set.", ConsoleColor.DarkYellow, ConsoleColor.Black); foreach (string file in files) { IMimeFileWorker worker = Activator.CreateInstance <Tmime>(); worker.BeginProcessing += new MessageInfoHandler(MimeFileWorkerBeginProcessing); worker.DoneProcessing += new MessageInfoHandler(MimeFileWorkerDoneProcessing); worker.ProcessingError += new MessageInfoHandler(MimeFileWorkerProcessingError); worker.ProcessingWarning += new MessageInfoHandler(MimeFileWorkerProcessingWarning); WorkPool.QueueWorkItem <string>(x => worker.Process(ConnectInfo.PathInfo, x), file); } } }