簡體   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