<PackageReference Include="NUnit" Version="3.0.0-rc" />

Event

public abstract class Event
NUnit.Core.Event is the abstract base for all stored events. An Event is the stored representation of a call to the ITestListener interface and is used to record such calls or to queue them for forwarding on another thread or at a later time.
public virtual bool IsSynchronous { get; }

Gets a value indicating whether this event is delivered synchronously by the NUnit EventPump.

If true, and if SetWaitHandleForSynchronizedEvents has been used to set a WaitHandle, Enqueue blocks its calling thread until the EventPump thread has delivered the event and sets the WaitHandle.

protected Event()

public abstract void Send(ITestListener listener)

The Send method is implemented by derived classes to send the event to the specified listener.