Jeu de délai d'attente pour une opération

J'ai de l'objet obj qui est la 3ème partie de la composante,

//this could take more than 30 seconds
int result = obj.PerformInitTransaction(); 

Je ne sais pas ce qui se passe à l'intérieur.
Ce que je sais, c'est si c'prendre plus de temps, il est échoué.

comment configurer un mécanisme d'expiration de cette opération, de sorte que si cela prend plus de 30 secondes, je viens de jeter MoreThan30SecondsException ?