Sdílet prostřednictvím


Odstranění objektů Reliable Actors a jejich stavu

Uvolnění paměti deaktivovaných objektů actor pouze vyčistí objekt objektu actor, ale neodebere data uložená ve správci stavu objektu actor. Při opětovné aktivaci objektu actor se jeho data znovu zpřístupní prostřednictvím správce stavu. V případech, kdy aktéři ukládají data ve Správci stavů a deaktivují se, ale nikdy se znovu neaktivují, může být nutné data vyčistit.

Služba actor poskytuje funkci pro odstranění herců ze vzdáleného volajícího:

ActorId actorToDelete = new ActorId(id);

IActorService myActorServiceProxy = ActorServiceProxy.Create(
    new Uri("fabric:/MyApp/MyService"), actorToDelete);

await myActorServiceProxy.DeleteActorAsync(actorToDelete, cancellationToken)
ActorId actorToDelete = new ActorId(id);

ActorService myActorServiceProxy = ActorServiceProxy.create(
    new Uri("fabric:/MyApp/MyService"), actorToDelete);

myActorServiceProxy.deleteActorAsync(actorToDelete);

Odstranění objektu actor má následující účinky v závislosti na tom, jestli je objekt actor aktuálně aktivní:

  • Aktivní objekt actor
    • Objekt actor se odebere ze seznamu aktivních her a deaktivuje se.
    • Jeho stav se trvale odstraní.
  • Neaktivní objekt actor
    • Jeho stav se trvale odstraní.

Objekt actor nemůže volat odstranění z jedné ze svých metod objektu actor, protože objekt actor nelze odstranit při provádění v kontextu volání objektu actor, ve kterém modul runtime získal zámek kolem volání objektu actor za účelem vynucení přístupu s jedním vláknem.

Další informace o Reliable Actors najdete v následujících tématu: