在c#中如何实现调用一个方法A后,去打开别的页面,等方法A执行完,返回一个执行结果

在c#中怎么实现调用一个方法A后,去打开别的页面,等方法A执行完,返回一个执行结果?
就是客户端调用一个webservice,这个webservice要执行很长时间,我想实现客户端对webservice调用后,客户端去做别的页面的工作,等服务端处理完这个webservice请求返回结果到客户端,客户端再处理这个结果,怎么实现?
------最佳解决方案--------------------
异步委托
------其他解决方案--------------------
BeginInvoke 方法用于启动异步调用。可以满足大部分的需求,还有更好的方法吗?