ControlledExecution.Run(Action, CancellationToken) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Varning
ControlledExecution.Run method may corrupt the process and should not be used in production code.
Kör kod som kan avbrytas asynkront.
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)
Parametrar
- action
- Action
Ombudet som representerar koden som ska köras.
- cancellationToken
- CancellationToken
Den annulleringstoken som kan användas för att avbryta körningen.
- Attribut
Undantag
Metoden stöds inte på den här plattformen.
Argumentet action är null.
Den aktuella tråden Run(Action, CancellationToken) kör redan metoden.
Körningen avbröts.
Kommentarer
Den här metoden gör det möjligt att avbryta godtycklig hanterad kod på ett icke-samarbetsbaserat sätt genom att utlösa ett undantag i tråden som kör koden. Även om undantaget kan fångas av koden genereras det igen i slutet av catch blocken tills körningsflödet återgår till ControlledExecution.Run metoden.
Körningen av koden är inte garanterad att avbrytas omedelbart eller alls. Den här situationen kan till exempel inträffa om en tråd har fastnat och kör ohanterad kod eller blocken catch och finally som anropas som en del av abortproceduren, vilket på obestämd tid fördröjer avbrottet. Dessutom kanske körningen inte avbryts omedelbart om tråden för närvarande kör ett catch eller finally ett block.
Om kod avbryts på en oväntad plats kan datastrukturernas tillstånd skadas i processen och leda till oförutsägbara resultat. Av den anledningen bör den här metoden inte användas i produktionskoden och om du anropar den genereras en kompileringstidsvarning.