sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan udføres en sql-server lagret procedure asynkront og sikrer, at den er fuldført

Se på C# Task Parallel Library. Du kan oprette en opgave, som er meget enkel. For eksempel...

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

Dette vil køre koden pakket ind i opgaven parallelt med hovedtråden. Hvis du ønsker at kontrollere, at opgaven er fuldført, kan du bruge

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

Denne metode undgik at ændre den lagrede procedure og tillader C# at håndtere ydeevnen.

Edit:-Og for at undgå, at hovedtråden slutter, tilføjer du først

    Task.WaitAll(myTask);

Dette vil dvale hovedtråden, indtil opgaven er fuldført.



  1. SQL returnerer 100 tilfældige rækker for hver alder

  2. Valg af tabeldata med PDO-udsagn

  3. SELECT i MySQL fungerer ikke

  4. SQL DELETE-syntaks – Listet efter DBMS