Здравствуйте, silart, Вы писали:
S>Хотелось бы выяснить в чем проблема и решается ли она средствами COM.
Ну если у Вас нигде нет прямых передач интерфейсов без маршалинга и используется STA, то боюсь, что проблема не в СOM, а просто имеют место ошибки в Вашем коде. Дело в том, что вызовы в ST апартамент и так сериализованы, то есть поступают последовательно, и обработка нового вызова в данном апартаменте не начнётся, пока не завершится предыдущий. А потоки, из которых эти вызовы пришли (если они тоже STA), будут крутить свой внутренний Message loop для обеспечения реентерабельности, либо, в случае MTA, будут просто заблокированы, если правильно помню. Судя по тому, что добавление Вами явной синхронизации проблему снимает, то скорее всего имеет место всё-таки какая-то путаница с потоковыми моделями, а из Вашего изложения реализованная Вами схема выглядит весьма туманно, извините.
Разное же проявление на разных машинах может быть связано с разным количеством процессоров или ядер на этих машинах.