ConcurrentQueue<T>クラス

内部ではInterlockedによってスレッドセーフを達成しています。Fine-Grained Locking and Lock-Free Mechanisms - Thread-Safe Collections | Microsoft Learn TryPeek - ConcurrentQueue.cs

ConcurrentQueue<int> queue = new ConcurrentQueue<int>();
queue.Enqueue(1);
queue.Enqueue(2);
queue.Enqueue(3);

int val1, val2, val3, val4, val5;
bool r1 = queue.TryDequeue(out val1); // true, 1
bool r2 = queue.TryDequeue(out val2); // true, 2
bool r3 = queue.TryPeek(out val3);    // true, 3
bool r4 = queue.TryDequeue(out val4); // true, 3
bool r5 = queue.TryDequeue(out val5); // false, 0

プロパティ

プロパティ 内容
int Count 格納されている要素の数
bool IsEmpty 格納されている要素がなく、空ならばtrue

IsEmpty

IsEmpty - ConcurrentQueue.cs

メソッド

メソッド 機能
Enqueue(T) 末尾にオブジェクトを、追加する
TryDequeue(T) 先頭にあるオブジェクトを、削除して取得を試みる
TryPeek(T) 先頭にあるオブジェクトを、削除せずに取得を試みる
ToArray() 要素を新しい配列にコピーできる
   
Microsoft Learnから検索