Захват кадра, на мой взгляд, лучше осуществлять по старинке - с помощью
Bitblt. В основном потоке или нет захватывать - решать Вам. Но вот сохранять кадры и, тем более, обрабатывать их настоятельно рекомендую в отдельном потоке, дабы не влиять на FPS.
А чтобы Вы, по неосторожности, не нагородили всяких функций "сжатия" изображения, особое внимание обращаю на то, что Bitblt может в процессе захвата изменять размер изображения, а также формат цвета.