sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man kör en sql-server lagrad procedur asynkront och säkerställer att den är färdig

Titta på C# Task Parallel Library. Du kan skapa en uppgift som är väldigt enkel. Till exempel...

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

Detta kommer att köra koden som är inslagen i uppgiften parallellt med huvudtråden. Om du vill kontrollera att uppgiften är klar kan du använda

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

Denna metod undvek att ändra den lagrade proceduren och tillåter C# att hantera prestandan.

Edit:-Och för att undvika att huvudtråden avslutas, lägg först till

    Task.WaitAll(myTask);

Detta kommer att vila huvudtråden tills uppgiften är klar.



  1. PHP:Sortera MySQL-resultat till flerdimensionell array

  2. MYSql topp 10 och andra totalt

  3. SQL, hur man uppdaterar en tabellstruktur

  4. Kan inte hitta oracle.ucp.jdbc.PoolDataSourceFactory i Oracle ucp