Я могу придумать два способа приблизиться к этому.NB: Я тоже не тестировал, и, несомненно, есть другие.
(1) На стороне клиента или сервера прервите соединение и восстановите новое.Хак, и я могу сказать по своему опыту, что кодирование вокруг такого типа соединения «теперь видишь, что нет» - это PITA.
(2) На сервересо стороны, сначала отправляйте только определенный объем данных, а остальные сохраняйте в кэше, пока не получите от клиента уведомление о том, что вы действительно хотите увидеть следующий бит.Это будет похоже на подход, используемый многими пользовательскими интерфейсами «подкачки».Вариант этого состоит в том, чтобы ставить в очередь не данные, а звонки клиенту.Добавьте их в какую-нибудь переменную Action, поставьте их в очередь и выполните обратный вызов только после того, как клиент скажет: «Да, дайте мне следующие 50».
К сожалению, я не знаю ни одногоспособ сказать OperationContext: «Прервать все ожидающие вызовы, но сохранить канал живым».Может быть, оно есть, но я не смог его найти.Рад, что кто-то с большим знанием и опытом поправил меня.