Ответ 1
Метод SeverConnection.Cancel()
работает аналогично по методу SqlCommand.Cancel()
, а Documentation утверждает:
Если ничего не отменяется, ничего не происходит. Однако, если есть команда в процессе, и попытка отмены не выполняется, исключение не является генерироваться.
В некоторых, редких случаях, если вы вызываете ExecuteReader, тогда вызовите Close (неявно или явно) перед вызовом Отмена, а затем вызовите Отмена, команда cancel не будет отправлена на SQL Server, а набор результатов может продолжать поток после вызова Close. Чтобы этого избежать, убедитесь, что вы вызываете "Отмена" перед закрытием устройства чтения или соединение.
Значение метода отмены будет работать, Если вы вызываете его перед вызовом метода close()
.
Если вы вызовете это после, команда не будет отправлена в sql, что приведет к продолжению потока в sql после вызова метода close()
.
Кроме того, если есть команда в процессе и попытка отменить не удается, вы не получите сообщение об ошибке, поскольку в этом случае не генерируется исключение.