У меня есть собственный COM-объект Visual C ++, и мне нужно сделать его полностью потокобезопасным, чтобы иметь возможность юридически пометить его как «свободный поток» в системном реестре. В частности, я должен убедиться, что не более одного потока одновременно обращается к любой переменной-члену объекта.
Суть в том, что я почти уверен, что ни один здравомыслящий потребитель моего COM-объекта никогда не попытается одновременно использовать объект из более чем одного потока. Поэтому я хочу, чтобы решение было как можно более простым, если оно удовлетворяет вышеуказанному требованию.
Вот что я придумала. Я добавляю мьютекс или критическую секцию в качестве переменной-члена объекта. Каждый COM-экспонированный метод получает мьютекс / секцию в начале и освобождает перед возвратом управления.
Я понимаю, что это решение не обеспечивает детализированный доступ, и это может замедлить выполнение, но, поскольку я полагаю, что одновременный доступ не произойдет, мне все равно.
Хватит ли этого решения? Есть ли более простое решение?