ControlledExecution.Run(Action, CancellationToken) Metoda

Definicja

Przestroga

ControlledExecution.Run method may corrupt the process and should not be used in production code.

Uruchamia kod, który można przerwać asynchronicznie.

public:
 static void Run(Action ^ action, System::Threading::CancellationToken cancellationToken);
[System.Obsolete("ControlledExecution.Run method may corrupt the process and should not be used in production code.", DiagnosticId="SYSLIB0046", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public static void Run (Action action, System.Threading.CancellationToken cancellationToken);
[<System.Obsolete("ControlledExecution.Run method may corrupt the process and should not be used in production code.", DiagnosticId="SYSLIB0046", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
static member Run : Action * System.Threading.CancellationToken -> unit
Public Shared Sub Run (action As Action, cancellationToken As CancellationToken)

Parametry

action
Action

Delegat reprezentujący kod do wykonania.

cancellationToken
CancellationToken

Token anulowania, którego można użyć do przerwania wykonywania.

Atrybuty

Wyjątki

Metoda nie jest obsługiwana na tej platformie.

Argumentem action jest null.

Bieżący wątek już uruchamia metodę Run(Action, CancellationToken) .

Wykonanie zostało przerwane.

Uwagi

Ta metoda umożliwia przerwanie dowolnego kodu zarządzanego w sposób nieoperacyjny, zgłaszając wyjątek w wątku wykonującym ten kod. Chociaż wyjątek może zostać przechwycony przez kod, zostanie on ponownie zgłoszony na końcu bloków catch , dopóki przepływ wykonywania nie powróci do ControlledExecution.Run metody.

Wykonanie kodu nie ma gwarancji natychmiastowego przerwania lub w ogóle. Taka sytuacja może wystąpić, na przykład, jeśli wątek jest zablokowany wykonujący niezarządzany kod lub catch bloki i finally , które są wywoływane w ramach procedury przerwania, tym samym bezterminowo opóźniając przerwanie. Ponadto wykonanie może nie zostać przerwane natychmiast, jeśli wątek wykonuje obecnie catch blok lub finally .

Przerwanie kodu w nieoczekiwanej lokalizacji może uszkodzić stan struktur danych w procesie i prowadzić do nieprzewidywalnych wyników. Z tego powodu ta metoda nie powinna być używana w kodzie produkcyjnym i wywoływanie powoduje wygenerowanie ostrzeżenia w czasie kompilacji.

Dotyczy