Здравствуйте, Serginio1, Вы писали:
S>Здравствуйте, Sinclair, Вы писали:
S>>>Мой код такого плана https://docs.microsoft.com/ru-ru/dotnet/api/system.threading.threadabortexception?view=net-5.0
S>>Перепишите его.
S> Ну приведи пример, что бы не случайно работало.
S>код типа такого
S>S>public static void DoWork() {
S> try {
S> callUnmagedCode(); // вот этот код зависает причем в основном потоке
S> }
S> }
S> catch(ThreadAbortException e) {
S> Thread.ResetAbort();
S> }
S> }
S>
S>Тут кода то с гулькин ..
Такие дела делаются внешиними процесами. Стартуется еще один EXE с параметрами, на выход он должен дать результат. Если процес не завершил работу вовремя — прибиваем его. Только так вы не угробите свое рабочее приложение.
Также можно стартануть такой процес как RPC сервер, чтобы не плодить параметров. И рестартовать его когда надо.