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
.
Прерывание кода в непредвиденном расположении может привести к повреждению состояния структур данных в процессе и привести к непредсказуемым результатам. По этой причине этот метод не следует использовать в рабочем коде, и его вызов приводит к предупреждению во время компиляции.