всего лишь короткий вопрос относительно использования TThreadList. Безопасно ли использовать его с «с» заявление следующим образом:TThreadList и оператор «с»
with FEngineList.DAQEngines.LockList do
begin
try
for Idx := 0 to Count - 1 do
Items[idx].Param1 := cos(2*pi*I/Count);
...
...
finally
FEngineList.DAQEngines.UnlockList;
end;
end;
или я должен явно сделать это, как здесь:
uEngines := FEngineList.DAQEngines.LockList;
try
with uEngines do
begin
for Idx := 0 to Count - 1 do
Items[idx].Param1 := cos(2*pi*I/Count);
...
...
end;
finally
FEngineList.DAQEngines.UnlockList;
end;
Спасибо!
Я никогда не видел случай, когда краткость с стоит риск загрязнения сфера –
В 2 варианта одинаково (не) сейф ... Поддерживаемость кода заключается не в написании минималистского «кода-гольфа». Речь идет о том, чтобы сделать код максимально понятным и недвусмысленным. В этом отношении использование ** с ** вообще вводит перекрытие по охвату. Для этого требуется больше усилий программиста, чтобы точно определить, где привязан каждый идентификатор внутри блока. И поэтому «безопасность» при точной интерпретации и модификации кода уменьшается. –
Если вы не используете, у вас нет проблемы, верно? Используйте второй пример - это более понятный и понятный. –