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);
bool r2 = queue.TryDequeue(out val2);
bool r3 = queue.TryPeek(out val3);
bool r4 = queue.TryDequeue(out val4);
bool r5 = queue.TryDequeue(out val5);
プロパティ
型 |
プロパティ |
内容 |
int |
Count |
格納されている要素の数 |
bool |
IsEmpty |
格納されている要素がなく、空ならばtrue |
IsEmpty
IsEmpty - ConcurrentQueue.cs
メソッド
メソッド |
機能 |
Enqueue(T) |
末尾にオブジェクトを、追加する |
TryDequeue(T) |
先頭にあるオブジェクトを、削除して取得を試みる |
TryPeek(T) |
先頭にあるオブジェクトを、削除せずに取得を試みる |
ToArray() |
要素を新しい配列にコピーできる |
|
|