sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo ejecutar un procedimiento almacenado del servidor sql de forma asíncrona y garantizar que se complete

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.