Personally I don't think putting threading into a web service is a very good idea especially if it's IIS hosted as you run the risk of putting the IIS worker processes into an unhealthy state. I'd create another WCF service, self hosted, as is always my preference, which is hidden somewhere behind your web servers. This service does the processing.
When you create this service, make use of the
IsOneWay
option on the operation contract option. With one way contracts the call doesn't wait for the process to the complete, it simply sends the data.
The following is information about one way contracts.
http://msdn.microsoft.com/en-us/library/ms733035.aspx[
^]
Note all the examples return
void
. That's because they don't wait, they can't return anything so they have to return
void
.