Расскажите что такое CriticalFinalizerObject, только попроще
прочитал https://docs.microsoft.com/ru-ru/dotnet/api/system.runtime.constrainedexecution.criticalfinalizerobject?view=net-5.0 и ничего не понял по правде
Ответы (1 шт):
Смотрим по вашей ссылке:
Классы, производные от CriticalFinalizerObject класса, неявно обрабатываются как область ограниченного выполнения (CER).
Дальше смотрим, что такое CER:
Область ограниченного выполнения (CER) является одной из составляющих механизма создания надежного управляемого кода. В этой области общеязыковая среда выполнения (CLR) не может выдавать специализированные исключения, препятствующие полному выполнению заключенного в эту область кода. В этой области не может выполняться пользовательский код, в результате которого могут возникать специализированные исключения.
В общем, насколько я понял, наследование класса от CriticalFinalizerObject гарантирует вам, что код такого класса будет исполняться в этой самой CER и ничто не помешает в этом случае сработать блоку finally. В общем случае в .NET может произойти много всякого разного, что не даст сработать финализатору класса. А этот механизм даёт гарантию.