Spójrz na bibliotekę równoległą zadań C#. Możesz utworzyć zadanie, które jest bardzo proste. Na przykład...
Task myTask= new Task(() => {
Console.WriteLine(@"hello");
//Call stored procedure here
});
myTask.start();
Spowoduje to uruchomienie kodu zawartego w zadaniu równolegle z głównym wątkiem. Jeśli chcesz sprawdzić, czy zadanie zostało ukończone, możesz użyć
if(myTask.IsCompleted())
{
Console.WriteLine(@"My task is finished");
}
Ta metoda pozwala uniknąć zmiany procedury składowanej i umożliwia C# obsługę wydajności.
Edycja:-I aby uniknąć zakończenia głównego wątku najpierw dodaj
Task.WaitAll(myTask);
Spowoduje to uśpienie głównego wątku do czasu zakończenia zadania.