У меня есть внешнее приложение, которое многопоточно, и это приложение использует мою собственную DLL для выполнения некоторых действий из этих потоков.
В этой dll у меня есть 2 функции, которые считывают и записывают некоторые данные в TList
.
Мне нужно, чтобы этот список был свободно прочитан этими потоками, но только один может писать за раз, остальные должны ждать своего времени, чтобы написать.Delphi2006 - Есть ли TList с TMultiReadExclusiveWriteSynchronizer?
Мой вопрос:
- есть в BDS 2006 TList
компонентов, которые имеют возможность TMREWSync или
- может быть, вы знаете, любой свободный компонент третьих сторон, которые я могу использовать в своем приложении или
- может быть, у вас есть некоторые настраиваемый код TList
, который может делать такие вещи, как это упомянуто выше.
Edit: мне нужно что-то вроде TThreadList.LockList
, но только для записи в этот список.
Спасибо за любую помощь.
Возможный дубликат [реализация Delphi MREW, который способствует читателям?] (Http://stackoverflow.com/questions/1742915/delphi-mrew-implementation-that-favors-readers) –
Вы не понимаете, мне нужен TList которые имеют возможности MREW, это не тот же вопрос. Существует TThreadList, но он блокирует все, чтение невозможно, пока блокировка не будет удалена. – NevTon
'TMultiReadExclusiveWriteSynchronizer' - это синхронный объект. У него нет контейнера, связанного с ним. Вы должны сделать это немного. Это очень легко сделать. Ты пробовал? –