Зм
Вызов процедуры в пределах одного процесса про-текает чрезвычайно быстро. Вызов между двумя отдельными процессами, работающими на одном компьютере, обслуживается на несколько порядков медленнее. Активизируйте один из процессов на другой машине, и вы увеличите время обработки еще на пару по-рядков, в зависимости от сложности топологии конкретной сети.
Аналогично и с потоками будет замедление вызовов. Плюс как сказали выше тогда нужно блокировать объект, а это убивает концепцию асинхронности, так как пока 1 поток будет работать с объектом, другой будет ждать. Плюс если 1 поток сломает объект, корректно работать не смогут и остальные. Так что лучше для каждого потока создавать свой экземпляр. А вообще рекомендую прочесть Фаулер "Архитектура корпоративных программных приложений" 5ю главу про управление параллельными заданиями.Так что принимай решение сам, но это отнюдь не хорошая идея