Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So führen Sie eine gespeicherte SQL Server-Prozedur asynchron aus und stellen sicher, dass sie abgeschlossen ist

Schauen Sie sich die C# Task Parallel Library an. Sie können eine Aufgabe erstellen, die sehr einfach ist. Zum Beispiel...

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

Dadurch wird der in die Aufgabe eingeschlossene Code parallel zum Hauptthread ausgeführt. Wenn Sie überprüfen möchten, ob die Aufgabe abgeschlossen ist, können Sie

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

Diese Methode vermeidet das Ändern der gespeicherten Prozedur und ermöglicht es C#, die Leistung zu handhaben.

Bearbeiten:-Und um zu vermeiden, dass der Hauptthread zuerst beendet wird, fügen Sie hinzu

    Task.WaitAll(myTask);

Dadurch wird der Haupt-Thread in den Ruhezustand versetzt, bis die Aufgabe abgeschlossen ist.