IReliableConcurrentQueue<T>.Count プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
内の値の数を取得します IReliableConcurrentQueue<T>。
public long Count { get; }
member this.Count : int64
Public ReadOnly Property Count As Long
プロパティ値
内の値の IReliableConcurrentQueue<T>数。
例外
現在、レプリカは読み取り可能ではありません。
は IReliableConcurrentQueue<T> ランタイムによって閉じられました。
例
この例では、キャンセル トークンが取り消されるまで、キューの数を無限に監視する方法を示します。
protected override async Task RunAsync(CancellationToken cancellationToken)
{
var concurrentQueue = await this.StateManager.GetOrAddAsync<IReliableConcurrentQueue<long>>(new Uri("fabric:/concurrentQueue"));
// Assumption: values are being enqueued/dequeued in another place (e.g. the communication listener).
var observer = Task.Run(
async () =>
{
while (true)
{
cancellationToken.ThrowIfCancellationRequested();
try
{
Console.WriteLine("Count: " + concurrentQueue.Count);
}
catch (FabricNotReadableException e)
{
// Retry until the queue is readable or a different exception is thrown.
Console.WriteLine("Queue is not readable, retrying the observation: " + e);
}
catch (FabricObjectClosedException e)
{
// Gracefully exit as this is happening due to replica close.
Console.WriteLine("Replica is closing, stopping observer: " + e);
return;
}
await Task.Delay(TimeSpan.FromMilliseconds(100), cancellationToken);
}
},
cancellationToken);
}
注釈
この数は、現在 に表示されている値の数を TryDequeueAsync(ITransaction, CancellationToken, Nullable<TimeSpan>)表します。 コミットされていないエンキューはカウントを増やしませんが、コミットされていない Dequeue はカウントを減らします。
この API はトランザクション パラメーターを受け取らないことに注意してください。 の効果は他の TryDequeueAsync(ITransaction, CancellationToken, Nullable<TimeSpan>) トランザクションから分離されないため、カウントを他のトランザクションから分離することもできません。
適用対象
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
Azure SDK for .NET