ControlledExecution.Run(Action, CancellationToken) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.