Chopin2001 Ответов: 1

MFC ctypeptrlist и parallel_for_each


Список выглядит примерно так
#typedef CTypedPtrList<CPtrList, CBobject*>COblist;

class{
 COblist m_oblist;
 CBobject m_object // have picture object and Drawing() function
}

Я хочу использовать parallel_for_each для рисования изображения m_object.
Как использовать parallel_for_each с функцией ramda?
Библиотека контейнеров Mfc(не является библиотекой stl) может использоваться в parallel_for_each и ramda?
Следующий код не работает. Как мне это исправить?
Спасибо, что уделили мне время.

Что я уже пробовал:

parallel_for_each(m_oblist.GetHead(), m_oblist.GetTail(), [&](){
   m_object->Drawing(fileheader.status/*struct*/, hFile/*FILE*/, filename/*CString*/)
}<pre>

1 Ответов

Рейтинг:
8

Randor

Нет,

Несколько проблем:

1.) функция parallel_for_each ожидает аргументы итератора.

2.) класс CObList не является потокобезопасным. Я не думаю, что какой-либо из контейнеров MFC имеет встроенную потокобезопасность.

Используйте соответствующий контейнер STL.

Контейнеры Стандартной Библиотеки C++ | Microsoft Docs[^]

с наилучшими пожеланиями,
-Дэвид Делон


Chopin2001

Спасибо Дэвид