Great news, there is a new solution in .NET 4.5.2 called the QueueBackgroundWorkItem API. It’s really simple to use:
HostingEnvironment.QueueBackgroundWorkItem(ct => DoSomething(a, b, c));
Here’s an article that describes it in detail.
And here’s anohter article that mentions a few other approaches not mentioned in this thread.
http://www.hanselman.com/blog/HowToRunBackgroundTasksInASPNET.aspx