¿Cómo abortar un método de larga duración?

Tengo un método de ejecución larga y quiero agregarle un tiempo de espera. ¿Es factible hacer eso? Algo como:

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

Donde cuando llegue a los 20 segundos, el método será abortado. El método no tiene bucle y no tengo un control / código sobre ese método.

Respuestas a la pregunta(5)

Su respuesta a la pregunta