Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zarządzanie pamięcią dezaktywowanych aktorów powoduje tylko wyczyszczenie obiektu aktora, ale nie powoduje usunięcia danych przechowywanych w menedżerze stanu aktora. Po ponownym uaktywnieniu aktora jego dane są ponownie udostępniane za pośrednictwem Menedżera stanu. W przypadkach, gdy aktorzy przechowują dane w programie State Manager i są dezaktywowani, ale nigdy nie są uaktywniane, może być konieczne wyczyszczenie ich danych.
Usługa aktora udostępnia funkcję usuwania aktorów ze zdalnego wywołującego:
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);
Usunięcie aktora ma następujący wpływ w zależności od tego, czy aktor jest obecnie aktywny:
-
Aktywny aktor
- Aktor jest usuwany z listy aktywnych aktorów i jest dezaktywowany.
- Jego stan jest trwale usuwany.
-
Nieaktywny aktor
- Jego stan jest trwale usuwany.
Aktor nie może wywołać usunięcia z jednej z metod aktora, ponieważ aktor nie może zostać usunięty podczas wykonywania w kontekście wywołania aktora, w którym środowisko uruchomieniowe uzyskało blokadę wokół wywołania aktora w celu wymuszenia dostępu jednowątkowego.
Aby uzyskać więcej informacji na temat elementów Reliable Actors, przeczytaj następujące artykuły: