Freigeben über


ControlledExecution.Run(Action, CancellationToken) Methode

Definition

Achtung

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

Führt Code aus, der asynchron abgebrochen werden kann.

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)

Parameter

action
Action

Der Delegat, der den auszuführenden Code darstellt.

cancellationToken
CancellationToken

Das Abbruchtoken, das zum Abbrechen der Ausführung verwendet werden kann.

Attribute

Ausnahmen

Die -Methode wird auf dieser Plattform nicht unterstützt.

Das action-Argument lautet null.

Im aktuellen Thread wird die Run(Action, CancellationToken) -Methode bereits ausgeführt.

Die Ausführung wurde abgebrochen.

Hinweise

Diese Methode ermöglicht das Abbrechen beliebiger verwalteten Codes auf nicht kooperative Weise, indem eine Ausnahme im Thread ausgelöst wird, der diesen Code ausführt. Obwohl die Ausnahme möglicherweise vom Code abgefangen wird, wird sie am Ende von catch Blöcken erneut ausgelöst, bis der Ausführungsflow zur ControlledExecution.Run -Methode zurückkehrt.

Es ist nicht garantiert, dass die Ausführung des Codes sofort oder überhaupt abgebrochen wird. Diese Situation kann beispielsweise auftreten, wenn ein Thread nicht verwalteten Code oder die catch als Teil der Abbruchprozedur aufgerufenen Blöcke und finally nicht ausgeführt wird, wodurch der Abbruch auf unbestimmte Zeit verzögert wird. Darüber hinaus kann die Ausführung nicht sofort abgebrochen werden, wenn der Thread derzeit einen - oder finally -catchBlock ausführt.

Das Abbrechen von Code an einem unerwarteten Speicherort kann den Zustand der Datenstrukturen im Prozess beschädigen und zu unvorhersehbaren Ergebnissen führen. Aus diesem Grund sollte diese Methode nicht im Produktionscode verwendet werden, und der Aufruf erzeugt eine Kompilierzeitwarnung.

Gilt für: