Freigeben über


QueryResponse<T>.MoveNextAsync(QueryOptions, CancellationToken) Methode

Definition

Geht zum nächsten Element der Abfrageergebnisse vor.

public System.Threading.Tasks.Task<bool> MoveNextAsync (Microsoft.Azure.Devices.QueryOptions queryOptions = default, System.Threading.CancellationToken cancellationToken = default);
member this.MoveNextAsync : Microsoft.Azure.Devices.QueryOptions * System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
Public Function MoveNextAsync (Optional queryOptions As QueryOptions = Nothing, Optional cancellationToken As CancellationToken = Nothing) As Task(Of Boolean)

Parameter

queryOptions
QueryOptions
cancellationToken
CancellationToken

Gibt zurück

True, wenn ein nächstes Element in den Abfrageergebnissen enthalten ist. False, wenn keine weiteren Elemente vorhanden sind.

Ausnahmen

Wenn diese Methode eine Anforderung an IoT Hub gestellt hat, um die nächste Seite von Elementen abzurufen, aber IoT Hub auf die Anforderung mit einem nicht erfolgreichen status Code reagiert hat. Wenn beispielsweise die bereitgestellte Anforderung gedrosselt wurde, IotHubServiceException wird mit ThrottlingException ausgelöst. Eine vollständige Liste möglicher Fehlerfälle finden Sie unter IotHubServiceErrorCode.

Wenn diese Methode eine Anforderung an IoT Hub gestellt hat, um die nächste Seite von Elementen abzurufen, aber die HTTP-Anforderung aufgrund eines zugrunde liegenden Problems wie Netzwerkkonnektivität, DNS-Fehler oder Serverzertifikatüberprüfung fehlschlägt.

Wenn das bereitgestellte Abbruchtoken den Abbruch angefordert hat.

Beispiele

QueryResponse<Twin> queriedTwins = await iotHubServiceClient.Query.CreateAsync<Twin>("SELECT * FROM devices"); while (await queriedTwins.MoveNextAsync()) { Twin queriedTwin = queriedTwins.Current; Console.WriteLine(queriedTwin); }

Hinweise

Wie bei einer typischeren Implementierung von IEnumerator sollte diese Funktion einmal aufgerufen werden, bevor Sie überprüfen Current.

Diese Funktion ist asynchron, da sie möglicherweise eine Dienstanforderung zum Abrufen der nächsten Ergebnisseite sendet, wenn die aktuelle Ergebnisseite bereits erweitert wurde. Beachten Sie, dass diese Funktion True zurückgibt, auch wenn sie sich am Ende einer bestimmten Elementseite befindet, solange mindestens eine weitere Seite abgerufen werden soll.

Gilt für: