Gerald Gibson has a good article over at CodeProject for creating an in-process asynchronous service in c#. It allows you to queue up jobs that implement a specific interface for processing in the background. I recently built a scheduler from the ground up that did the exact same thing :-)… Bummer.
Create in-process asynchronous services in C# - The Code Project - C# Programming
This article describes how to make an in-process asynchronous service in your C# applications and why you would want to. The classes for the same provide what is often referred to as background processing. However, they also provide a foundation for building stable and robust user interfaces centered around message passing (like Windows itself) and state machines. The InprocessAsynchronousService class provided in the sample project is a base class that you can inherit your own classes from to build custom services. The sample project shows how to create these custom services.