Это не просто , если нет невозможно (так что это в значительной степени дублирующий вопрос).
Вы действительно хотите, чтобы операция была отменена, когда клиент отключается? В противном случае вы могли бы реализовать некоторый механизм, подобный состоянию, используя некую рабочую очередь.
Затем клиенты вызывают QueueQuery(query)
, который не делает ничего, кроме этого, и возвращает идентификатор только что поставленного в очередь запроса. После этого клиент может продолжить опрос QueryStatus(id)
для получения статуса (например, «В очереди», «Выполняется», «Завершено»), а после завершения запроса он может вызвать QueryResults(id)
.
.
Между тем другая служба (т.е. служба Windows, а не служба WCF) продолжает выполнять все запросы в очереди.