Заправка в BHO / ATL / COM.Винапи или что-то еще? - PullRequest
2 голосов
/ 26 ноября 2010

Я пишу надстройку IE и использую для этого ATL.Мне нужно создать фоновый рабочий поток, чтобы поток пользовательского интерфейса был разблокирован как можно скорее.Мой вопрос заключается в том, должен ли я использовать минимально возможный способ создания потока, который является Winapi, CreateThread и т. Д.

Или есть другой предложенный способ создания рабочего потока в проектах BHO / ATL / COM?

Сначала я должен изучить этот материал, поэтому я решил сначала спросить;)

Ответы [ 3 ]

2 голосов
/ 26 ноября 2010

Нет необходимости использовать низкоуровневые API, если вам не нужен уровень контроля, который они предлагают.

С ATL у вас уже есть CWorkerThread, но вы также можете использовать другие библиотеки, такие как Boost.Thread , если хотите.

1 голос
/ 26 ноября 2010

Если вы идете до API, то _beginthreadex предпочтительнее CreateThread (), если ваш поток будет использовать CRT. (Если вы не знаете, это, вероятно, будет)

0 голосов
/ 26 ноября 2010

Как правило, вы будете использовать boost :: thread, Visual Studio ConCRT или Intel TBB, в зависимости от того, насколько экстремальными ваши потребности в потоках.Для простейшего использования выберите boost :: thread.Для более сложных применений выберите ConCRT или TBB.Не используйте WinAPI, если вы серьезно не нуждаетесь в какой-либо функции, не доступной в других библиотеках.Простой факт заключается в том, что если вы пишете библиотеку на C ++, то использовать WinAPI для потоков - это все равно, что возвращаться к ассемблеру для написания вашей программы.Оставайтесь в C ++ - используйте Boost.

...