Как работает сборка мусора в .NET, и при каких условиях объекты из поколения 2 не будут собраны, даже если система испытывает давление по памяти?
Сборка мусора в .NET делит объекты на поколения 0, 1 и 2. Объекты в поколении 2 собираются только при полной (Gen2) сборке, которая триггерится при сильном давлении на память или по явному вызову GC.Collect(). Однако объекты из поколения 2 не будут собраны, если на них остаются сильные ссылки, включая кэш, события (если делегаты не отписаны), или если они участвуют в ссылочных циклах, не распознаваемых сборщиком из-за GCHandle, static-ссылок или нативных ресурсов без финализатора.
Библиотека собеса по С#
Библиотека собеса по С#
👍1
Можно ли реализовать несколько блоков catch?
Невозможно реализовать несколько блоков catch. После выполнения правильного кода catch управление переходит к блоку final. После этого реализуется код, следующий за final блоком.
Библиотека собеса по С#
Библиотека собеса по С#
🌚9😁5😢3👍2
Что такое Round Trip в ASP.NET?
В момент включения обработки на стороне сервера, тогда включаются четыре этапа:
1. Пользователь запрашивает веб-форму с веб-сервера.
2. Веб-сервер отвечает указанной веб-формой.
3. Пользователь вводит информацию и отправляет веб-форму на сервер.
4. Затем веб-сервер обрабатывает структуру формы и отправляет результаты обратно конкретному пользователю.
Теперь этап 3 известен как постбэк страницы, в то время как этапы 3 и 4 в совокупности известны как «Round Trip». Можно сказать, что обратный путь включает в себя выполнение полного обхода по сети к веб-браузеру и получение ответа. Веб-приложения используют HTTP для создания соответствия между веб-программой и сервером.
Библиотека собеса по С#
1. Пользователь запрашивает веб-форму с веб-сервера.
2. Веб-сервер отвечает указанной веб-формой.
3. Пользователь вводит информацию и отправляет веб-форму на сервер.
4. Затем веб-сервер обрабатывает структуру формы и отправляет результаты обратно конкретному пользователю.
Теперь этап 3 известен как постбэк страницы, в то время как этапы 3 и 4 в совокупности известны как «Round Trip». Можно сказать, что обратный путь включает в себя выполнение полного обхода по сети к веб-браузеру и получение ответа. Веб-приложения используют HTTP для создания соответствия между веб-программой и сервером.
Библиотека собеса по С#
В чём разница в поведении между lock, Monitor.Enter/Exit и ReaderWriterLockSlim в C#, и когда каждый из них предпочтительнее использовать?
lock — синтаксический сахар над Monitor.Enter/Exit с автоматическим вызовом Exit в случае исключений. Monitor даёт больше контроля: можно использовать TryEnter с таймаутом, Pulse/Wait для координации потоков. ReaderWriterLockSlim позволяет нескольким потокам читать одновременно, но блокирует запись эксклюзивно, что повышает производительность при преобладании чтений. lock — для простых критических секций, Monitor — для сложной синхронизации с сигналами и таймингом, ReaderWriterLockSlim — при частых конкурентных чтениях и редких записях.
Библиотека собеса по С#
Библиотека собеса по С#
👍2
В чем разница между dispose и finalize в C#?
Основное различие между Dispose() и Finalize() заключается в том, что Dispose() должен быть явно вызван пользователем, а метод Finalize() вызывается сборщиком мусора при уничтожении объекта.
Библиотека собеса по С#
Библиотека собеса по С#
👍2