关于如何使用TThreadList的简短问题。将它与“with”语句一起使用是否安全,如下所示:
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;
谢谢!
最佳答案
选择哪种变体取决于您。 with
仅告诉编译器在哪里获取您在代码中编写的成员。因此,只要您要访问的成员,它都是安全的。它不会影响运行时。
我更喜欢第一种方法,就是没有begin..end
块(如果我被迫使用with
),但这只是我个人的喜好,您可以随意编写它:
with FEngineList.DAQEngines.LockList do
try
...
finally
FEngineList.DAQEngines.UnlockList;
end;
关于multithreading - TThreadList和 “with”语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30256619/