Mire la biblioteca paralela de tareas de C#. Puede crear una tarea que es muy simple. Por ejemplo...
Task myTask= new Task(() => {
Console.WriteLine(@"hello");
//Call stored procedure here
});
myTask.start();
Esto ejecutará el código envuelto en la tarea en paralelo con el hilo principal. Si desea comprobar que la tarea está completa, puede utilizar
if(myTask.IsCompleted())
{
Console.WriteLine(@"My task is finished");
}
Este método evitó alterar el procedimiento almacenado y permite que C# maneje el rendimiento.
Editar:-Y para evitar que el hilo principal termine, agregue primero
Task.WaitAll(myTask);
Esto dormirá el subproceso principal hasta que se complete la tarea.