Являются ли эти три разных понятия или я становлюсь беспорядочным? (Я читал статьи о сборке резьбы и сборке мусора вместе и смутил себя.)
"Критический раздел" . Я думаю, что это может быть просто термин для разделов кода, в котором вы не хотите одновременно обращаться к нескольким потокам, то есть внутри блокировки и операторов Monitor.Enter/Exit
"Критическая область" . Здесь нет реальной подсказки. MSDN говорит что-то вроде строк "Это говорит хозяину, что исключения, которые были выбраны в этом разделе, могут иметь более широкий эффект". И что "хосты CLR, например Sql Server" могут выбирать обработку исключений, которые были выбраны в критических областях "по-разному". Иными словами, как? И почему? И, что наиболее важно, в каких сценариях реального мира мне может понадобиться отметить код как критический регион?
"Ограниченный регион выполнения" . Я столкнулся с этим, когда читал о CriticalFinalizerObject в статье коллекции мусора.
Все, что я могу понять из MSDN на этом, - это то, что код в одном из этих регионов каким-то образом гарантированно работает (но как?) и поэтому не должен бросать исключения вне диапазона.
Что такое out-of-band exception
? (Я сделал это Google, но он просто спросил меня, имею ли я в виду "исключение из-за пределов" ).
Это любое необработанное исключение? Или только определенные типы исключений? И еще раз, самое главное, в каких сценариях реального мира мне может понадобиться "ограниченная область выполнения"?
Как я не совсем понимаю понятия, я не уверен, какие теги этот вопрос нуждается, кроме ".NET".