Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como executar um procedimento armazenado do servidor sql de forma assíncrona e garantir sua conclusão


Veja a Biblioteca Paralela de Tarefas C#. Você pode criar uma tarefa que é muito simples. Por exemplo...
    Task myTask= new Task(() => {
        Console.WriteLine(@"hello");
        //Call stored procedure here
    });
    myTask.start();

Isso executará o código envolvido na tarefa em paralelo com o thread principal. Se você deseja verificar se a tarefa está concluída, você pode usar
    if(myTask.IsCompleted())
    {
        Console.WriteLine(@"My task is finished");
    }

Esse método evitou alterar o procedimento armazenado e permite que o C# lide com o desempenho.

Edit:-E para evitar que o thread principal termine primeiro, adicione
    Task.WaitAll(myTask);

Isso suspenderá o thread principal até que a tarefa seja concluída.