Avoiding addhandler

I find I use addhandler frequently, but in specific areas.

For example I might have a timer (subclass) that inspects a queue to determine if emails should be sent. In the constructor I wire up the SMTPSecureSocket and it’s events, and in the action event I append then send the messages. For me this encapsulates the task rather than spreading code across multiple sub classes.

Is there a better way of achieving this?

I don’t use weakaddressof, but I often will write a destructor to removehandler (when the object will be destroyed - infrequent).

Lately, I use addhandler just before I need it, say for instance when I start a timer, and removeHandler immediately after I stopped the timer. I find that somehow cleaner. An something less to worry about.