我正在开发一个从 SQL 服务器调用存储过程的 C# 应用程序。根据用户输入的搜索参数,存储过程可能需要一段时间并返回许多记录。
我想实现一个取消按钮,以便用户可以在需要很长时间时取消存储过程的执行。我在新线程中运行对存储过程的调用,因此当存储过程需要一段时间时,GUI 不会受到影响。我阅读了有关中止线程的信息,但发现许多拒绝使用中止的意见。
我想到的可能的解决方案:
- 有没有通用的停止执行存储过程的方式(c#代码中的方法)
- 是否有更好的方法来停止线程? (我还发现了 Thread.Interrupt() 但这只适用于阻塞的线程,不适用于运行的代码)
- 我可以放弃线程并启动一个新线程,但会占用不必要的数据库和网络资源
- 有没有办法从服务器端停止存储过程?
最佳答案
您可能不想在这里使用 Linq。试试这个:
Stop SQL query execution from .net Code
基本上使用SqlCommand.Cancel()
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.cancel.aspx
关于c# - Linq - 中断存储过程的执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5512943/