Тема оптимизации многопоточных программ настолько обширна, что в формате форума неудобна.
Когда мне понадобилось запустить многопоточные вычисления, я изучил с десяток наставлений по написанию таких программ, потом нашёл два-три более-менее понятных примера, стал их разбирать по шагам, плюс держал открытым описание WinAPI (делал через него, почти как и Вы) и синтаксиса языка. И пробовал по шагам добавлять конструкции. С компиляцией и проверкой работы. Плюс постоянное гугление и получаемых ошибок, и форматов функций, и похожих вопросов на форумах (функции часто выдают непредусмотренный результат и приходится разбираться почему). В итоге оказалось достаточным пользоваться буквально полудесятком функций. Правда я уже понимал возможные проблемы и вообще идеологию многопоточного программирования.
В общем надо взять более-менее понятный работающий пример и уже по аналогии делать своё, детально разбираясь в чём проблема на каждом шаге. Как заработает - дорабатывать и оптимизировать.
Когда я всем этим занимался (конец девяностых — начало двухтысячных), то информационным источником номер один для меня была MSDN (к VC++ 5 и 6), причём 5 версия была во многом лучше. Там, во-первых, были прекрасно и ясно написанные специальные разделы по разным тематикам (в частности, многопоточность, синхронизация процессов), во-вторых, было огромное количество работающих примеров, которые можно было изучать и модифицировать, в-третьих, было много журнальных статей, в-четвёртых, специально написанных статей (или для MSDN или просто авторских, не для журналов), в-пятых... многого я уже и не помню (вспомнил, что ещё книги там были). MSDN уже следующей версии было заметно "downgrade" в разных аспектах. Последующие версии я уже почти не отслеживал (редко-редко заходя уже онлайн и убеждаясь в снижении его уровня).
Книги (бумажные) были источником весьма дополнительным (неосновным и, скорее, беллетристическим, ибо всё книжное, что я тогда читал, было много лучше описано в той же MSDN, где, кстати, и некоторые книги были).
Отмечу одну книгу очень хорошего уровня, и технического, и авторского (хорошо литературно пишет): Джеффри Рихтер. Windows для профессионалов, третье и четвёртое издания (много отличаются, причём в четвёртом издании отсутствует важная глава или две из третьего и есть много других нежелательных изменений; однако, есть и новое полезное).
Ещё три хорошие книги, где есть информация о многопоточности, скорее, более технического плана: Соломон и Руссинович. Внутреннее устройство Windows 2000 (3rd Edition), Свен Шрайбер. Недокументированные возможности Windows 2000 и Алексей Коберниченко. Недокументированные возможности Windows NT.
Эти книги были (и есть) у меня в бумаге и я их неоднократно читал-разбирал. И всё же, повторюсь, все они лишь "беллетристрическое дополнение" к совершенно достаточному MSDN (версий VS 5 или 6), пусть, порой, и весьма хорошо написанное.
Форумов и интернета тогда у меня не было, и, зарегистрировавшись на RSDN и некоторых других программистских форумах в 2005 году, я увидел, что форумы дают, скорее, отрицательную информацию и помощь, и в основном используются для развлечения, порой весьма профессионального (типа философских дискуссий по программированию или в разделе C++), но, всё же, развлечения (и отвлечения).