Установить таймаут ожидания выполнения функции из DLL - C#
Формулировка задачи:
Приветствую знатоков и интересующихся.
происходит "зависание". Программа не валится, а просто впадает в неприемлио длительное ожидание на этой строчке.
Тоесть перед выполнением некоторой функции, включается обратный отсчёт таймера, и если по истечению времени результат не был получен, то происходит "аварийное" прерывание выполнения функции.
Что-то аналогичное WatchDog для микроконтроллеров. Но может есть для этой проблеммы и более нетривиальное но практичное решение? Казалось бы проблемма то должна быть довольно распространённой...
Если на C# такого хоть убей нет, а в других языках есть, то на крайний случай можно обёртку сделать и на другом языке, так что ответ может быть не только на C#
Ждём идей )
Суть проблемы:
Есть довольно громоздкая библиотека от стороннего разработчика для работы с внешним устройством (через USB подключаемым). Библиотека рабочая, но с багами. Иногда (по непонятным причинам) во время выполнения в моём коде библиотечной функции типаint Result = FuncFromDLL(void);
Вопрос:
Есть ли в C# (или С++) "Нечто" что позволяло бы бороться с таими проблемами. Напрример что-то вродеTryDoBeforeTimeOut(int MilliSeconds) { Result = FuncFromDLL(void); } catch{....}
Решение задачи: «Установить таймаут ожидания выполнения функции из DLL»
textual
Листинг программы
if (task.Wait(timeout)) Console.WriteLine("Task completed with result: {0}", task.Result); else Console.WriteLine("Task timeout expired");
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д