Несколько мыслей:
Если вы не знакомы с другими языками программирования и / или не разбираетесь в ассемблере, это довольно сложный первый C-проект. Тем не менее, удачи!
Если контекстный режим вашего экземпляра - PerCall, то ваш сервер всегда однопоточный, поскольку по определению каждый вызов получает новый экземпляр сервера.
Это нормально работает в среде IIS, где IIS может запускать несколько экземпляров сервера для обработки n одновременных вызывающих абонентов, по одному в качестве однопоточного сервера для каждого входящего запроса.
Вы упоминаете в одном из своих комментариев, что размещаете WCF внутри приложения форм - это может быть проектное решение, которое вам необходимо пересмотреть - это не совсем оптимальное решение, поскольку приложение Winforms не может легко обрабатывать несколько вызывающих и запускать несколько экземпляров служебного кода.
Marc
Используете ли вы режим совместимости с ASP.NET? Состояние сеанса?
Мой следующий вопрос: что заставляет вас думать, что это однопоточный? Как вы это определили и какой тест вы используете, чтобы доказать, что вы не решили проблему? Может быть ложное срабатывание.
Есть ли где-нибудь блокировка в вашей сервисной функции?