В роли рабочего агента Azure используется следующий шаблон для удаления объекта contexttext. Кроме того, использование любого из этих шаблонов влияет на объединение пулов по-другому?Предпочтительный шаблон для размещения контекста объекта
public override void Run()
{
DatabaseObjectContext ctx = new DatabaseObjectContext()
while (condition)
{
ctx.Dosomething();
}
ctx.Dispose();
}
против
public override void Run()
{
while (condition)
{
DatabaseObjectContext ctx = new DatabaseObjectContext()
ctx.Dosomething();
ctx.Dispose();
}
}
Просто уточнить. Если вы выберете первое условие while, оно все равно будет находиться в пределах используемой инструкции. Настолько эффективно, что одно создание datacontext правильно? – user529265
Нет, .NET создаст один datacontext для каждого цикла. Обертка внутри использования позволит вам рассказать структуре, что контекст является одноразовым, но это ответчик сборщика мусора, чтобы уничтожить эти контексты (т. Е. В какой-то момент, в памяти вы могли бы иметь все созданные контексты объекта, все ожидающие сбора мусора) – Marconline