Если вы используете его таким образом, нет никакой разницы.Основным преимуществом класса является его использование следующим образом:
static CCriticalSection cs;
{
CSingleLock lock(cs, true);
// do your work here
} // unlocked automatically
При выходе из области критическая секция будет разблокирована, даже если было сгенерировано исключение или использовался ранний возврат.Этот метод известен как RAII (Инициализация ресурсов является инициализацией) и широко известен.
Классы синхронизации MFC не очень хорошо разработаны.Я бы порекомендовал использовать файлы boost.thread или те, которые будут доступны в новом стандарте C ++, если вы сможете их достать.