Следует иметь в виду, что весь объект находится не в другом потоке. Если у этого объекта есть подпрограмма, выполняющаяся в другом потоке, то любые вызовы, которые этот объект выполняет напрямую, будут выполняться в том же потоке. Это включает вызовы делегатов.
Итак, ваш объект не существует в определенном потоке, но выполняющиеся из него подпрограммы существуют. И когда кто-то вызывает одну из ваших подпрограмм из другого потока, эта подпрограмма будет выполняться в другом потоке. Это важно, потому что данные уровня класса не принадлежат ни одному конкретному потоку. Если вы не обрабатываете тот факт, что вызов происходит из другого потока, вы можете столкнуться с проблемами параллелизма и искажения данных на уровне класса вашего объекта.