Здравствуйте, Serginio1, Вы писали:
S>Здравствуйте, _NN_, Вы писали:
_FR>>>И не напоминайте
_NN>>У вас есть код, которому нужен именно Thread.Abort и нет возможности переписать с использованием CancellationToken или другого аналога ?
_NN>>Всегда есть хардкор вариант DllImport TerminateThread, но зачем
S>Для примера есть системный код который зависает по неизвестным причинам. При этом нет никакого async и CancellationToken. Можно по истечении времени кинуть Thread.Abort отловить его и сделать Thread.ResetAbort
S>Во всяком случае можно дальше работать или отвиснуть поток, что бы не копились
Это не поможет разве что управление потом возвращается в управляемый код, а там уже и CancellationToken можно поставить.
If Abort is called on a managed thread while it is executing unmanaged code, a ThreadAbortException is not thrown until the thread returns to managed code.
https://docs.microsoft.com/en-us/dotnet/api/system.threading.thread.abort?redirectedfrom=MSDN&view=net-5.0#System_Threading_Thread_Abort