Qual é a maneira correta de cancelar a inscrição de eventos em c #?

Tenho uma classe de modelo com um evento que assino de outras classes. Quero me inscrever e cancelar a inscrição corretamente em cada class

Primeiramente, quero garantir que, no MyClass, cancele a inscrição apenas uma vez, mesmo que esse código esteja em alguns método

Segundo, existem outras classes, exceto o MyClass, que usa o OnMyEvent, por isso não quero cancelar a inscrição involuntariamente do evento na class

 MyClass(IModel model)
{
  _model = model;
  _model.OnMyEvent +=EventHandle;
}
Close()
{
 _model.OnMyEvent -=EventHandle;
} 
Disconnect()
{
 //I want to check if OnMyEvent has already unsibscribed
 //Moreover OnMyEvent is used in other classes and
 //I don't want to mess up with it here 
 _model.OnMyEvent -=EventHandle;
}

questionAnswers(4)

yourAnswerToTheQuestion