Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment exécuter une procédure stockée de serveur sql de manière asynchrone et s'assurer qu'elle est terminée

Regardez la bibliothèque parallèle de tâches C #. Vous pouvez créer une tâche très simple. Par exemple...

    Task myTask= new Task(() => {
        Console.WriteLine(@"hello");
        //Call stored procedure here
    });
    myTask.start();

Cela exécutera le code encapsulé dans la tâche en parallèle avec le thread principal. Si vous souhaitez vérifier que la tâche est terminée, vous pouvez utiliser

    if(myTask.IsCompleted())
    {
        Console.WriteLine(@"My task is finished");
    }

Cette méthode évite de modifier la procédure stockée et permet à C# de gérer les performances.

Edit : - Et pour éviter que le fil principal ne se termine en premier, ajoutez

    Task.WaitAll(myTask);

Cela mettra le thread principal en veille jusqu'à ce que la tâche soit terminée.