gpt4 book ai didi

c# - 如何异步执行sql server存储过程并确保它完成

转载 作者:太空宇宙 更新时间:2023-11-03 11:32:02 25 4
gpt4 key购买 nike

我有一个存储过程,调用时会执行大量处理。存储过程的各个部分都包含在它们自己的事务中,但是整个过程。不在事务中运行,因为这会导致不必要的阻塞并损害性能。我遇到的问题是,如果用户在 proc 之后关闭用户界面。已经开始并且在它结束之前,连接关闭并且 proc.停止执行。

是否有任何方法可以异步或在另一个进程中执行此操作,如果用户界面应用程序在处理过程中关闭则不会中止。

最佳答案

查看 C# 任务并行库。您可以创建一个非常简单的任务。例如……

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

这将与主线程并行运行包装在任务中的代码。如果你想检查任务是否完成,你可以使用

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

此方法避免更改存储过程并允许 C# 处理性能。

编辑:-并避免主线程先完成添加

    Task.WaitAll(myTask);

这将使主线程休眠直到任务完成。

关于c# - 如何异步执行sql server存储过程并确保它完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7444215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com