ControlledExecution.Run(Action, CancellationToken) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Attenzione
ControlledExecution.Run method may corrupt the process and should not be used in production code.
Esegue il codice che può essere interrotto in modo asincrono.
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)
Parametri
- action
- Action
Delegato che rappresenta il codice da eseguire.
- cancellationToken
- CancellationToken
Token di annullamento che può essere usato per interrompere l'esecuzione.
- Attributi
Eccezioni
Il metodo non è supportato in questa piattaforma.
Il valore dell'argomento action
è null
.
Il thread corrente esegue già il Run(Action, CancellationToken) metodo .
L'esecuzione è stata interrotta.
Commenti
Questo metodo consente di interrompere il codice gestito arbitrario in modo non cooperativo generando un'eccezione nel thread che esegue tale codice. Anche se l'eccezione può essere intercettata dal codice, viene generata nuovamente alla fine dei blocchi fino a quando il flusso di catch
esecuzione non torna al ControlledExecution.Run
metodo .
Non è garantito che l'esecuzione del codice interrompa immediatamente o. Questa situazione può verificarsi, ad esempio, se un thread è bloccato durante l'esecuzione di codice non gestito o dei catch
blocchi e finally
chiamati come parte della routine di interruzione, in modo da ritardare indefinitamente l'interruzione. Inoltre, l'esecuzione potrebbe non essere interrotta immediatamente se il thread sta eseguendo un catch
blocco o finally
.
L'interruzione del codice in una posizione imprevista può danneggiare lo stato delle strutture di dati nel processo e causare risultati imprevedibili. Per questo motivo, questo metodo non deve essere usato nel codice di produzione e chiamarlo genera un avviso in fase di compilazione.