Доработка интерфейса-обертки, Delphi

Денис16 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
29.09.2013

Доработка интерфейса-обертки для работы с платформой QUIK по API.

Язык: Delphi 7

Вводная:

В интерфейсе - 4 каллбека, в них асинхронно поступают данные от QUIK и добавляются в TThreadList в виде объектов.

Обработчику листа TThreadList отправляются PostMessage-ивенты о факте получения новых записей.

Далее обработчик отправляет эти объекты в основное приложение.

Проблема заключается в синхронизации TThreadList.LockList между обработчиком и каллбеками:

когда в процессе выполнения обработчика в некоторые каллбеки приходит больше 1 записи происходит двойной лок.

Контекст разработки:

Основное приложение, использующее вышеописанный интерфейс, включает в себя

достаточно много различных библиотек/компонентов и его миграция затруднительна.

Поэтому необходима локальная разработка с использованием Teamviewer.

ТЗ:

Реализация механизма синхронизации между асинхронными каллбеками и

их обработчиком при помощи Lock-free queue list, Thread pool или другими методами.

Желательна разработка наиболее быстрого и эффективного варианта.

Использование Teamviewer или других менеджеров удаленных десктопов.