Во вчерашней истории я, не задумываясь, предложил два способа решения проблемы congestion у Qt signal/slot в многопоточном случае: выдавать результат работы потока пачками и/или вообще выдавать его другим способом (через неблокирующую очередь).
Вчера вечером я проверил первый способ (сегодня задокументировал-нарисовал графики) и вот что у меня получилось:
Исходный псевдокод собственно обработчика выглядит так:
while(job = nextJob()){ result = processJob(job); emit processed(result); }
Давайте накопим результаты в пачку и выдадим эту пачку принимающей стороне:
while(job = nextJob()){...