Я должен использовать API для вызова третьей стороны и в идеале использовать возвращаемый ответ. API имеет встроенный 30-секундный тайм-аут и не позволяет вам установить его программно. Мне нужно, чтобы время истекло через 12 секунд. Вот звонок, который я делаю:
строка ответа = theAPI.FunctionA(a, b, c, d);
Я думал, что мне, возможно, придется использовать асинхронные вызовы, чтобы выполнить это и прервать поток через 12 секунд. Другой вопрос stackoverflow, похоже, близок к тому, что я рассматриваю: Реализовать общий тайм-аут C#
... Мне просто интересно, лучший ли это способ. В частности, я продолжаю видеть статьи, которые предупреждают вас о вызове EndInvoke, несмотря ни на что, и мне интересно, будет ли Abort, как в упомянутом примере, по-прежнему правильно закрывать поток? Я вижу, что были некоторые комментарии с большим беспокойством по поводу использования Abort.