ControlledExecution.Run(Action, CancellationToken) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
警告
ControlledExecution.Run method may corrupt the process and should not be used in production code.
執行可異步中止的程序代碼。
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)
參數
- action
- Action
表示要執行之程式代碼的委派。
- cancellationToken
- CancellationToken
可用來中止執行的取消標記。
- 屬性
例外狀況
這個平臺不支援方法。
action
引數為 null
。
目前的線程已經執行 Run(Action, CancellationToken) 方法。
執行已中止。
備註
這個方法可在執行該程式代碼的線程中擲回例外狀況,以非合作方式中止任意 Managed 程式代碼。 雖然程式代碼可能會攔截例外狀況,但會在區塊結尾 catch
重新擲回,直到執行流程返回 ControlledExecution.Run
方法為止。
不保證會立即中止或完全中止程序代碼。 例如,如果線程停滯執行 Unmanaged 程式代碼,或 catch
當做中止程式一部分呼叫的 和 finally
區塊,因而無限期地延遲中止,就可能發生這種情況。 此外,如果線程目前正在執行 或 finally
區塊,可能不會立即中止執行catch
。
中止非預期位置的程式代碼可能會損毀進程中的數據結構狀態,並導致無法預期的結果。 基於這個理由,此方法不應該用於生產程序代碼,並呼叫它會產生編譯時間警告。