<PackageReference Include="NUnit" Version="4.2.2" />

NUnit.Framework.Internal.Execution.EventPump<TEvent, TListener>

public abstract class EventPump<TEvent, TListener> : IDisposable where TEvent : IEvent<TListener>
EventPump base class pulls events of any type out of an EventQueue and sends them to any listener. It is used to send events back to the client without using the CallContext of the test runner thread.
namespace NUnit.Framework.Internal.Execution { public abstract class EventPump<[System.Runtime.CompilerServices.Nullable(0)] TEvent, TListener> : IDisposable where TEvent : IEvent<TListener> { public EventPumpState PumpState { get; } public string Name { get; set; } protected EventPump(TListener eventListener, EventQueue<TEvent> events, string name = "Standard"); public void Dispose(); public void Start(); public void Stop(); } }