public void StartProcess() { var data = new ProcessEventArgs(); try { Console.WriteLine("Process Started!"); data.IsSuccessful = true; data.CompletionTime = DateTime.Now; OnProcessCompleted(data); // passing event data } catch (Exception) { data.IsSuccessful = false; data.CompletionTime = DateTime.Now; OnProcessCompleted(data); } }
protected virtual void OnProcessCompleted(ProcessEventArgs e) { ProcessCompleted?.Invoke(this, e); }
// event handler static void bl_ProcessCompleted(object sender, ProcessEventArgs e) { Console.WriteLine("Process " + (e.IsSuccessful ? "Completed Successfully" : "Failure")); Console.WriteLine("Completion time: " + e.CompletionTime.ToLongDateString());; }