首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在后台调用存储过程?

如何在后台调用存储过程?
EN

Stack Overflow用户
提问于 2012-05-30 01:49:33
回答 4查看 3.7K关注 0票数 2

我有一个存储过程,大约需要2-3分钟来完成它的执行。在ado.net中,我想让存储过程在后台执行,我必须在向存储过程发出请求后立即返回代码。有人能在这方面帮我吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-30 01:55:11

您应该调查一下Threading。简而言之,您可以使用对存储过程的调用创建一个线程。当你启动线程时,它会在后台运行。这个线程可以有一个回调函数,该函数在线程结束时调用。

BackgroundWorker是一种创建线程的简单方法。

票数 2
EN

Stack Overflow用户

发布于 2012-05-30 01:53:50

考虑使用工作线程在后台调用上执行存储过程调用。您想知道存储过程调用的结果吗?如果您这样做了,那么您将需要等待并加入正在执行存储过程调用的工作线程。如果不是,你可以直接“触发并忘记”--但在这种情况下,你可能不知道任何错误/异常。

Here是Joe Albahari one threading写的一篇很好的文章。

票数 0
EN

Stack Overflow用户

发布于 2012-05-30 02:07:26

您可以尝试使用反应式编程(Rx)

Rx是微软的新提案,用于简化异步调用以及其他很酷的功能

http://msdn.microsoft.com/en-us/data/gg577609.aspx

Nuget包是:

https://nuget.org/packages/Rx-Main/1.0.11226

它应该是这样的:

代码语言:javascript
复制
    // here call the sp
    var o = Observable.Start(() => { Thread.Sleep(1000); });

    o.Subscribe(x => { Console.WriteLine("Operation done"); });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10804153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档