Megosztás a következőn keresztül:


Reliable Actors-szereplők és állapotuk törlése

Az inaktivált aktorok szemétgyűjtése csak az aktorobjektumot tisztítja meg, de nem távolítja el azokat az adatokat, amelyek egy színész State Managerében találhatók. Amikor egy szereplő újraaktiválódik, az adatai ismét elérhetővé válnak a State Manageren keresztül. Azokban az esetekben, amikor a szereplők adatokat tárolnak a State Managerben, és inaktiválják őket, de soha nem aktiválódnak újra, szükség lehet az adataik törlésére.

Az Aktor szolgáltatás egy függvényt biztosít a szereplők távoli hívóról való törléséhez:

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);

A színészek törlése a következő hatásokkal jár attól függően, hogy a színész jelenleg aktív-e:

  • Aktív színész
    • A rendszer eltávolítja az aktív színészek listájából az aktorokat, és inaktiválja őket.
    • Az állapota véglegesen törlődik.
  • Inaktív színész
    • Az állapota véglegesen törlődik.

Az aktor nem hívhatja meg a törlést önmagában az egyik aktor metódusából, mert az aktor nem törölhető az egyszálú hozzáférés kikényszerítése érdekében, amikor a futtatókörnyezet zárolta az egyszálú hozzáférést.

A Reliable Actorsrel kapcsolatos további információkért olvassa el a következőket: