Nothing wrong with that syntactically. But my preference is that if the method is more than a couple lines long, I like to break it out into it's own method so that readability and maintainability is a little easier.
If the "time consuming work" is more then a few lines, I'd say it is bad style. Its not bad style to call a method or mess around with the parameters, etc. That is often quite handy. For example, if you used the stock handler there, you couldn't pass in any arguments. Its often a lot more useful to do something like:
If you are using VS 2010 and Framework 4, use Tasks, I have not used VS 2012, so probably async is better. I like to us lambda expressons even for more than a few lines, but obviously not too many lines. What would I consider too many, maybe 10. It keeps everything together.