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