2016-06-19 4 views
0

Предположим, у меня есть два IActorRef указывают на тот же актер, но получены из различных источников:Являются ли два IActorRef, указывающие на одного и того же актера, всегда равными?

ссылка

Один актер был получен во время локального создания актера:

var actorRef1 = system.ActorOf<MyActor>("myActor");

Позже эта ссылка актер был принят в удаленный актер, и после того, как ссылка того же актера была возвращена обратно (например, actorRef2).

Испытывают ли две ссылки на актеры на равенство?

Object.Equals(actorRef1, actorRef2); // true???

Или другой случай: два IActorRef были получены от различных удаленных систем, и указывая на тот же актер на другую удаленную систему.

ответ

1

На этот вопрос был дан ответ с помощью gitter chat. Но плохой пост это здесь также для потомков.

IActorRef are equatable, они сравниваются через их actorpath и UID. Поэтому, даже если 2 actorrefs приобретаются с помощью разных средств, они все равно будут равны, если они укажут на одного и того же актера.