У меня есть внешняя dll с некоторыми методами, которые мне нужно вызвать. Кроме того, я хочу иметь возможность настроить тайм-аут для выполнения этих методов, чтобы прервать их, если время выполнения> время ожидания конфигурации. Я называю эти методы решения различных задач, например:Stop Task on long running method
Parallel.ForEach(....
{
Func<object> asyncFucntion =() => DynamicCall(method, paramList);
IAsyncResult ar = asyncFucntion.BeginInvoke(null, null);
if (ar.AsyncWaitHandle.WaitOne(timeout, true))
{
return asyncFucntion.EndInvoke(ar);
}
else
{
//HERE I NEED to stop DynamicCall. Timeout was EXCEEDED
}
});
Теперь у меня есть возможность получить DynamicCall идентификатор темы и прервать его. Есть ли другой способ? Более легкий способ? Я не могу использовать Расторжение ТОКЕШ, так как я не могу изменить внешний Dll
Спасибо, Alex
Если вам нужно резко остановить операцию Прервать это путь (не сделать это, если вы не имеете другой способ) , еще проверить Кооперативное аннулирование –