Поделиться через


IAsyncBatchObserver<T> Интерфейс

Определение

Этот интерфейс обобщает интерфейс IAsyncObserver, чтобы разрешить производство и потребление пакетов элементов.

Обратите внимание, что этот интерфейс реализуется потребителями элементов и вызывается (используется) производителями элементов. Это означает, что конечная точка потребителя потока реализует этот интерфейс.

public interface IAsyncBatchObserver<in T> : Orleans.Streams.IAsyncObserver<in T>
public interface IAsyncBatchObserver<T>
type IAsyncBatchObserver<'T> = interface
    interface IAsyncObserver<'T>
type IAsyncBatchObserver<'T> = interface
Public Interface IAsyncBatchObserver(Of In T)
Implements IAsyncObserver(Of In T)
Public Interface IAsyncBatchObserver(Of T)

Параметры типа

T

Тип объекта, потребляемого наблюдателем.

Это контравариантный параметр типа. Это означает, что вы можете использовать любой из указанных типов или любой тип, являющийся менее производным. Дополнительные сведения о ковариантности и контрвариантности см. в статье Ковариантность и контрвариантность в универсальных шаблонах.
Производный
Реализации

Методы

OnCompletedAsync()

Уведомляет потребителя о завершении потока.

Задача, возвращаемая этим методом, должна быть завершена, когда потребитель завершит обработку закрытия потока.

OnErrorAsync(Exception)

Уведомляет потребителя о том, что поток имел ошибку.

Задача, возвращаемая этим методом, должна быть завершена, когда потребитель завершит обработку закрытия потока.

OnNextAsync(IList<SequentialItem<T>>)

Передает следующий пакет элементов потребителю.

Задача, возвращаемая этим методом, должна быть завершена, когда обработка элементов была достаточно обработана потребителем для удовлетворения любых гарантий поведения.

Когда потребитель является (конечной точкой производителя) потока, задача завершается, когда реализация потока приняла ответственность за элементы и гарантирует соблюдение своих гарантий доставки. Например, поток, основанный на устойчивой очереди, завершит задачу, когда элементы были надежно сохранены. Поток, обеспечивающий максимальное усилие при доставке, возвращает задачу, которая уже завершена.

Когда производитель является (конечной точкой потребителя) потока, задача должна быть завершена кодом потребителя, когда он принял ответственность за элементы. В частности, если поставщик потоков гарантирует по крайней мере однократную доставку, то элементы не должны считаться доставленными до тех пор, пока задача, возвращенная потребителем, не будет завершена.

OnNextAsync(T, StreamSequenceToken)

Передает следующий элемент потребителю.

Задача, возвращаемая этим методом, должна быть завершена, когда обработка элемента была достаточно обработана потребителем для удовлетворения любых гарантий поведения.

Когда потребитель является (конечной точкой производителя) потока, задача завершается, когда реализация потока приняла ответственность за элемент и гарантирует соблюдение своих гарантий доставки. Например, поток, основанный на устойчивой очереди, завершит задачу, когда элемент был успешно сохранен. Поток, обеспечивающий максимальное усилие при доставке, возвращает задачу, которая уже завершена.

Когда производитель является (конечной точкой потребителя) потока, задача должна быть завершена кодом потребителя, когда он принял ответственность за элемент. В частности, если поставщик потоков гарантирует по крайней мере однократную доставку, то элемент не должен считаться доставленным до тех пор, пока задача, возвращенная потребителем, не будет завершена.

(Унаследовано от IAsyncObserver<T>)
OnNextBatchAsync(IEnumerable<T>, StreamSequenceToken)

Передает следующий пакет элементов потребителю.

Задача, возвращаемая этим методом, должна быть завершена, когда все элементы в пакете были достаточно обработаны потребителем для удовлетворения любых гарантий поведения.

То есть семантика возвращаемой задачи аналогична OnNextAsyncсемантике для всех элементов в пакете.

Применяется к