What is the difference between delegate and events?
Actually events use delegates in the bottom. But they also add an extra layer on the delegates, hence forming the publisher and the subscriber model.
As the delegates are function to pointers they can move across any clients. So any of the clients can remove or add events, which can be much confusing. But the events provide the extra protection by adding the layer and making it a publisher and subscriber model.