我正在從一個SQL服務器調用存儲過程的C#應用程序。根據用戶輸入的搜索參數,存儲過程可能需要一段時間並返回許多記錄。Linq - 中斷執行存儲過程
我想實現一個取消按鈕,以便用戶可以取消執行存儲過程,當它需要很長時間。我在新線程中運行對存儲過程的調用,以便在存儲過程需要一段時間時GUI不會受到影響。我讀了關於中止一個線程,但發現許多拒絕有關使用中止的意見。
可能的解決方案,我認爲的:
- 有一個共同的方式來停止執行存儲過程(這是在C#代碼的方法)
- 有沒有更好的方式來停止線程? (我也發現Thread.Interrupt(),但這隻適用於封鎖的線程,而不是在運行代碼)
- 我可以放棄線程並啓動一個新的但後來不必要的數據庫和網絡資源
- Is there一種從服務器端停止存儲過程的方法?
瞎猜,但並斷開上DataContext的連接,或者在一個TransactionScope包裹並呼叫「回滾」停止了嗎? – Ocelot20 2011-04-06 13:14:56