sql >> Database >  >> RDS >> Sqlserver

Hoe een op een SQL-server opgeslagen procedure asynchroon uit te voeren en ervoor te zorgen dat deze wordt voltooid?

Kijk naar de C# Task Parallel Library. U kunt een taak maken die heel eenvoudig is. Bijvoorbeeld...

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

Hierdoor wordt de code die in de taak is verpakt, parallel met de hoofdthread uitgevoerd. Als u wilt controleren of de taak is voltooid, kunt u gebruik maken van

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

Deze methode vermeed het wijzigen van de opgeslagen procedure en stelt C# in staat om de prestaties af te handelen.

Bewerken:-En om te voorkomen dat de hoofddraad eindigt, voegt u eerst

. toe
    Task.WaitAll(myTask);

Dit zal de hoofdthread laten slapen totdat de taak is voltooid.



  1. Een geheel getal van een db-kolom converteren naar tekst in oracle

  2. PostgreSQL - INNER JOIN twee tabellen met een LIMIT

  3. Hoe slecht is het gebruik van SELECT MAX(id) in MYSQL in plaats van mysql_insert_id() in PHP?

  4. Hoe kan ik de decimalen van AVG-functie in sql-limiet tot slechts 2 maken?