怎么设置一个方法的执行时间,过期自动跳出

如何设置一个方法的执行时间,过期自动跳出
比如说,在Main方法中有这样的代码,

......
service.Invoke();
......

当执行到service.Invoke()的时候,可能这个方法很费时。我想在Main方法中设定一下这个方法的执行时间,如果执行时间大于5分钟,那么就不执行了,立即执行接下来的代码。有没有什么简单的方法?
------解决思路----------------------
task方法不靠谱
它其实就是一个线程
你可以在线程里执行代码,不阻塞主线程,然后也可以超时强制让线程关闭
但是这些都不是正路
既然你线程要执行代码,这代码保证是有用的,没执行完就关闭了,即使程序还能继续往下运行,其实也是不正常的,没有从根本上解决问题
你在操作IO的时候,应该设置超时时间,超时了自动返回,而不是在另一个线程里结束正在执行的线程