Если вы хотите, чтобы ваш класс предоставил какой-то механизм уведомлений, вам действительно нужно событие , чтобы не обновлять пользовательский интерфейс напрямую. В контексте приложения WinForms вы можете обработать это событие из вашей формы и выполнить любую Invoke
/ BeginInvoke
работу там.
Надеюсь, это имеет смысл. Если нет, попробуйте поискать события .NET, чтобы понять, как они работают.
Но во что бы то ни стало, держите свой класс в стороне от своего пользовательского интерфейса. Я не уверен, почему кто-то будет поощрять движение в противоположном направлении.