Учитывая ваш пример кода, кажется, что он будет поточно-ориентированным для чтения .Предполагается, что entries[]
является фиксированным размером.Если вы просто перебираете фиксированную коллекцию, нет никаких причин, по которым размер коллекции должен быть изменен, что делает потокобезопасным read ok.
Единственное, что я могвидите, результат может быть устаревшим.Проблема возникает из-за вызова GetUpdatedObj
- Thread A
, возможно, не видит обновления до entries[0]
в течение жизненного цикла
for(int i=0; i<Length(entrues); i++)
if(entries[i].bUpdated) then return entries[i];
, если Thread B
приходит и обновляет entries[0]
в то время как i > 0
- все зависит от того, считается ли это приемлемым или нет.