Я хотел заменить использование обычных потоков классом task_group из ppl, но столкнулся со следующей проблемой:
У меня есть класс A с членом task_group,
создать 2 разных экземпляра класса A,
запустить задачу в группе задач первого экземпляра A (с помощью run),
через несколько секунд запустите задачу в task_group второго экземпляра A.
Я ожидаю, что две задачи будут выполняться параллельно, новторая задача ожидает завершения первой задачи, а затем запускается.
Это происходит только в моем приложении, где задачи запускаются из статической функции.Я сделал такой же сценарий в тестовом приложении, и задачи выполнялись правильно параллельно.
Потратив несколько часов, пытаясь выяснить это, я переключился на обычные потоки.
Кто-нибудь знает, почемутакое поведение во время параллелизма или как я могу избежать этого?
EDIT Проблема заключалась в том, что он работал на одноядерном процессоре, а среда выполнения параллелизма смотрела на пропускную способность,Интересно, имеет ли библиотека параллельных шаблонов Microsoft концепцию активного объекта или что-то в строках, чтобы вы могли указать, что задача, которую вы собираетесь запустить, должна выполняться параллельно с потоком, из которого вы ее запускаете ...