繁体   English   中英

C#Thread.Abort()+ ODBC连接

[英]C# Thread.Abort() + ODBC Connection

如果我在当前正在执行ODBC命令的线程上调用Thread.Abort() (在C#/。NET中)会发生什么情况(特别是针对MSSQL和Oracle,而且通常也针对ODBC)? 命令会被取消吗? 数据库服务器是否会识别连接的另一端没有任何东西并杀死进程(再次,特别是MSSQL和Oracle)? 还是我需要首先在连接上显式调用Cancel()

我的目标是确保我连接的数据库的安全性,以防应用程序发生最坏的情况(或者我可以捕获并响应的最坏情况,例如系统关闭等)。

我想进行防御性编程,并尽可能尝试发出Cancel(),但无论如何我都想知道这种行为。

如果要确保取消SQL命令,为什么不使用TransactionScope.Dispose()方法或干脆不Complete事务呢? 它可以在ThreadProcess和此类抽象之上运行,并且在Thread Cancel和SQL命令之间不会发生Thread

另外,如注释中所述,您的SQL驱动程序可以在其他Thread工作,甚至可以是不受管的代码,因此取消Thread不会影响SQL命令,因此您确实需要Cancel()您的连接或命令。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM