Como abortar um método de longa duração?

Eu tenho um método de execução longa e quero adicionar tempo limite a ele. É possível fazer isso? Algo como:

AbortWaitSeconds(20)
{
    this.LongRunningMethod();
}

Onde quando chegou a 20 segundos, o método será abortado. O método não tem loop e eu não tenho um controle / código sobre esse método.

questionAnswers(5)

yourAnswerToTheQuestion