Асинхронные процедуры

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
CRobin
постоялец
Сообщения: 145
Зарегистрирован: 26.01.2016 11:15:39

Асинхронные процедуры

Сообщение CRobin »

Здравствуйте. Сейчас из одного потока передаю в другой поток указатель на колбэк процедуру. Когда происходит вызов колбэка, естественно процедура выполняется во втором потоке, чем создает существенную задержку в работе приложения. Сама процедура довольно тяжелая, вызывается относительно редко, но иногда может быть вызвана несколько раз одновременно (агрегация данных). Есть желание выполнять ее асинхронно в произвольном количестве копий. Есть ли в FPC готовый механизм для решения таких ситуаций, или же нужно извращаться с объектами Thread?
Аватара пользователя
runewalsh
энтузиаст
Сообщения: 579
Зарегистрирован: 27.04.2010 00:15:25

Сообщение runewalsh »

Оберни QueueUserWorkItem, или напиши свою.
wavebvg
постоялец
Сообщения: 355
Зарегистрирован: 28.02.2008 03:57:35

Сообщение wavebvg »

Попробуйте MTProcs
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

В общем случае тут пул потоков неплохо подойдет. Реализации есть разные.
Ответить