ControlledExecution.Run(Action, CancellationToken) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
-catch
Block 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.