Пример #1
0
 /// <summary>
 /// Handles process exited event.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">Event data.</param>
 /// <exception cref="ArgumentNullException">e is null.</exception>
 protected virtual void OnProcessExited(object sender,
     ProcessExitEventArgs e)
 {
     if (e == null)
     {
         throw new ArgumentNullException("e",
                                         Resources.ArgumentNullException);
     }
     if (e.LogEvent)
     {
         _logger.Log(_formatter.Format(e));
     }
 }
Пример #2
0
 /// <summary>
 /// Formats message.
 /// </summary>
 /// <param name="processExitEventArgs">Message.</param>
 /// <returns>Formatted message.</returns>
 /// <exception cref="ArgumentNullException">processExitEventArgs is null.</exception>
 public string Format(ProcessExitEventArgs processExitEventArgs)
 {
     if (processExitEventArgs == null)
     {
         throw new ArgumentNullException("processExitEventArgs",
                                         Resources.ArgumentNullException);
     }
     return String.Format(CultureInfo.CurrentCulture,
                          @Resources.MessageProcessExited,
                          @DateTime.Now,
                          @Resources.MessageTypeInfo,
                          @processExitEventArgs.ProcessId,
                          @processExitEventArgs.DaemonName,
                          @processExitEventArgs.ExitCode);
 }
Пример #3
0
 /// <summary>
 /// Handles process exited event.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">Event data.</param>
 protected override void OnProcessExited(object sender,
     ProcessExitEventArgs e)
 {
     base.OnProcessExited(sender, e);
     UpdateRunningProcesses();
 }
Пример #4
0
        /// <summary>
        /// Handles process exited event. Decreases process counts.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">Event data.</param>
        private void OnProcessExited(object sender,
                                     ProcessExitEventArgs e)
        {
            // Decrease external process counter.
            SetExternalProcessRunningOff();

            // Run threaded event in main thread.
            _synchronizationContext.Send(new SendOrPostCallback(delegate
            {
                EventHandler<ProcessExitEventArgs> handler = ProcessExited;
                if (handler != null)
                {
                    handler(this, e);
                }
            }), null);

            // Remove available process from the file watcher.
            RemoveAvailableProcess(e.DaemonName);

            // Decrease file watcher process count.
            RemoveProcessFromProcessBatchSize(e.DaemonName);

            SetProcessRunningOff();
        }