public static void Main()
EventLogicClass elObj = new EventLogicClass();
elObj.CompletedProc += elObj_CompletedProc;
public static void elObj_CompletedProc(object sender, MyEventArgs result)
Console.WriteLine($"Random number is {result.Nr} which is {result.TheResult} ");
public class MyEventArgs : EventArgs
public bool TheResult { get; set; }
public int Nr { get; set; }
public class EventLogicClass
public event EventHandler<MyEventArgs> CompletedProc;
MyEventArgs objDataToPass = new MyEventArgs();
Random rnd = new Random();
Console.WriteLine($"Process Started! {nr}");
objDataToPass.TheResult = false;
OnCompletedProc(objDataToPass);
objDataToPass.TheResult = true;
OnCompletedProc(objDataToPass);
protected virtual void OnCompletedProc(MyEventArgs result)
CompletedProc?.Invoke(this, result);