ControlledExecution.Run(Action, CancellationToken) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Upozornění
ControlledExecution.Run method may corrupt the process and should not be used in production code.
Spustí kód, který lze asynchronně přerušit.
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
Delegát, který představuje kód, který se má spustit.
- cancellationToken
- CancellationToken
Token zrušení, který lze použít k přerušení provádění.
- Atributy
Výjimky
Metoda není na této platformě podporovaná.
Argument action
je null
.
V aktuálním vlákně je již spuštěna Run(Action, CancellationToken) metoda.
Poprava byla přerušena.
Poznámky
Tato metoda umožňuje přerušit libovolný spravovaný kód nespolupracovatelným způsobem vyvoláním výjimky ve vlákně, které tento kód spouští. I když může být výjimka zachycena kódem, je znovu vyvolána na konci catch
bloků, dokud se tok provádění nevrátí do ControlledExecution.Run
metody.
Spuštění kódu není zaručeno okamžitě nebo vůbec. K této situaci může dojít například v případě, že vlákno je zablokované a spouští nespravovaný kód nebo catch
bloky a finally
, které jsou volána v rámci procedury přerušení, čímž neomezeně zpožďuje přerušení. Provádění navíc nemusí být okamžitě přerušeno, pokud vlákno právě provádí catch
blok nebo finally
.
Přerušení kódu v neočekávaném umístění může poškodit stav datových struktur v procesu a vést k nepředvídatelným výsledkům. Z tohoto důvodu by se tato metoda neměla používat v produkčním kódu a jejím voláním vznikne upozornění v době kompilace.