2

我正在通过 BeginExecuteNonQuery 启动一个运行时间很长的查询。

我想关闭我的连接并允许此查询继续在服务器上工作(稍后我将通过新的连接/线程检查结果)。

但是,似乎每当我的连接被垃圾收集时(即使我没有专门关闭它),服务器端进程都会终止。

我正在使用连接池并怀疑这可能是问题所在 - 任何人都可以为我提出解决方案吗?

谢谢!

编辑:有人在评论中提到了这一点(然后删除了评论?!) http://rusanu.com/2009/08/05/asynchronous-procedure-execution/

它非常有用,但需要我创建一个服务、队列和几个存储过程,而我真的不想这样做。

此外,不幸的是,我不能保证 Sql Agent 服务处于活动状态,因此无法创建作业来运行 SQL。

4

1 回答 1

0

关闭您注册的回调内部的连接BeginExecuteNonQuery。作为副作用,这将使SqlConnection对象保持活动状态。此外,您无论如何都需要确保处置,即使是长期运行的声明。

于 2013-08-09T14:11:24.383 回答