Если, как вы говорите, «объект CSocket должен использоваться только в контексте одного потока», то нет «механизма для совместного использования CSocket между потоками».
Другими словами, один из потоков должен владеть CSocket, а другие не могут связываться с ним.
В таких случаях решение заключается в использовании системы обмена сообщениями между потоками. Таким образом, один из других потоков может отправить владельцу сообщение: «Эй, приятель, закрой свой сокет!»
Сведения о том, как вы будете вести этот обмен сообщениями, полностью зависят от контекста вашей программы.