Метод Dispose () может быть вызван более одного раза, нет правила, которое говорит, что это не законно. Если вы переопределяете его (реализуете деструктор в C ++ / CLI), вы должны убедиться, что ваш код устойчив к этому. Очень часто делается с полем isDisposed в классе.