Спасибо! Помогло
Странное поведение "Ресурсов"
-
Здравствуйте коллеги!
Столкнулся со странным, а если быть точнее, недопустимым поведением при использовании обычного "*.txt"-ресурса.Создаётся ресурс стандартным диалогом "+ Создать ресурс".
ИмяSRC_TXT, тип*.txt- из файла, режим "Чтение и удаление строк из файла" -> "Использовать каждую строку один раз".Заполняем его чем-то вроде:
qwdf1@mail.ru:boroda1 qwdf2@mail.ru:boroda2 qwdf3@mail.ru:boroda3 qwdf4@mail.ru:boroda4 qwdf5@mail.ru:boroda5 qwdf6@mail.ru:boroda6 qwdf7@mail.ru:boroda7 qwdf8@mail.ru:boroda8 qwdf9@mail.ru:boroda9В
OnApplicationStartразмещаем глобальную переменную-счётчик и помещаем в неё кол-во элементов ресурса:

Затем, несложная эксплуатирующая логика, эмулирующая примерно-настоящее, ожидаемое поведение:

Означающее примерно следующее:- Посчитать элементы, для, возможно каких-либо операций на основании знания об этом.
- Взять элемент для совершения каких-либо действий с его участием.
- Если ресурс опустел, отстреляться в лог о количестве выполненных операций и не перезапуская поток, завершить его выполнение.
- Иначе, выполнить какие-то действия, внутри которых, подразумевается вероятность того, что данные из ресурса придётся вернуть обратно в источник, в случае, если, например, до их использования не дошло и по пути вылезли иные, непреодолимые "препятствия". Это поведение эмулирует случайное значение, получающее единицу, или ноль, соответственно, возвращая полученное значение в ресурс, с установленной галочкой на:

Сохраняем.
Запускаем в режиме "Запуск", например, в четыре потока:

Всё чётко. Девять элементов в ресурсе, три из которых вернулись обратно в источник и были вновь использованы. Итого 12 итераций по данным, о чём свидетельствует завершающий текст красным цветом.- Файл ресурса — пустой.
Запускаем с теми же настройками, предварительно добавив в ресурс всё тот же набор строк. Ожидаем когда произойдут какой-либо набор действий, например, появится первое сообщение о добавленном/возвращённом в ресурс элементе и принудительно завершаем выполнение сценария, указав опцию
Ждать каждый поток. Пока выбирал эту опцию, у меня уже засветилось в логе примернопятьдобавлений и остальные добавились после:

Таким образом, всего было добавлено
восемьэлементов и с первыми двумя, как гласит лог, уже началось взаимодействие, завершившееся на "Ok".- Файл ресурса — пустой.
Но, как?!? Как минимум, хотя бы какое-то количество элементов, возвращённых в ресурс должны были оказаться там!
Считаем:
9 начальных элементов + 8 добавленных = 17
17 - 11 Ok = 6======================================
Или это работает иначе?
Прокомментируйте пожалуйста.