You want to use BeginExecuteNonQuery(AsyncCallback, Object) , and then use a callback method that actually does nothing. It should be noted that the connection will not actually be closed.
MSDN SqlCommand.BeginExecuteNonQuery Method
Alternatively, you can use Service Broker for the request queue to start the stored procedure. However, there is a small plumbing. Perhaps this is not worth your situation. Especially if you are not using Service Broker for anything else. The advantage here is that the connection can be closed immediately after the queue with Service Broker, and placing messages in the queue is a very fast operation.
source share