Поделиться через


ControlledExecution.Run(Action, CancellationToken) Метод

Определение

Внимание!

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) метод .

Исполнение было прервано.

Комментарии

Этот метод позволяет прерывать произвольный управляемый код несотрудно, вызывая исключение в потоке, выполняющем этот код. Хотя исключение может быть перехвачено кодом, оно повторно создается в конце catch блоков до тех пор, пока поток выполнения не вернется в ControlledExecution.Run метод .

Выполнение кода не гарантируется немедленное прерывание или вообще. Такая ситуация может возникнуть, например, если поток зависает при выполнении неуправляемого кода или catch блоков и finally , которые вызываются в рамках процедуры прерывания, что на неопределенный срок задерживает прерывание. Кроме того, выполнение может быть прервано не сразу, если поток в настоящее время выполняет catch блок или finally .

Прерывание кода в непредвиденном расположении может привести к повреждению состояния структур данных в процессе и привести к непредсказуемым результатам. По этой причине этот метод не следует использовать в рабочем коде, и его вызов приводит к предупреждению во время компиляции.

Применяется к