1.创建一个线程执行ExecuteReader,DB连接正常,前几次都能正常读出SQL数据。
2.在连续Select大数据,且多次在没读完数据的时候就Thread.Abort,然后关闭BD Connection及Reader。
3.再次调用ExecuteReader,程序挂起,大约10分钟才结束,且最后读出来错误数据。
~~~请教大神,这是什么原因?
是因为KillThread跟DB关闭顺序反了?
还是DB数据没取完导致数据堆积?
怎么解决?
KillThread是什么鬼
应该调用 Thread.Abort
线程里面在 ThreadAbortException 里面对 connection sqlcommand 关闭、清理
我的表述不清楚,就是Thread.Abort,但是有个疑问,我是先Thread.Abort然后关闭了Connection和reader,但是为什么多次select之后,还是会hang在ExecuteReader上呢?
会不会跟数据库锁有关系?比如Select同时有Insert,而数据库是read_committed on的属性