次の方法で共有


CQueue クラス

CQueue クラス テンプレートは、単純で静的にサイズを割り当てたキューを実装する。

クラス コンストラクタはキューのサイズを指定する。項目をキューに入れるには CQueue::PutQueueObject メソッドを使い、項目をキューから出すには CQueue::GetQueueObject メソッドを使う。キューがいっぱいである場合、PutQueueObject メソッドは項目がキューから出されるまでブロックする。キューが空の場合、GetQueueObject は項目がキューに入れられるまでブロックする。テンプレート パラメータで項目のタイプを指定する。次に例を示す。

CQueue<int> number_queue;
number_queue.PutQueueObject(7);

このクラスは 2 つのセマフォを使ってキュー操作を制御する。1 つは "get" セマフォ、もう 1 つは "put" セマフォである。GetQueueObject メソッドは (WaitForSingleObject 関数を使って) "get" セマフォで待ち、"put" セマフォを (ReleaseSemaphore 関数を使って) 解放する。PutQueueObject メソッドは "put" セマフォで待ち、"get" セマフォを解放する。このクラスはクリティカル セクションを使って複数スレッドでのキュー操作を処理する。

要件

ヘッダー: Wxutil.h で宣言し、Streams.h をインクルードする。

ライブラリ: Strmbase.lib (リテール ビルド) または Strmbasd.lib (デバッグ ビルド)。

パブリック メソッド  
CQueue コンストラクタ メソッド。
~CQueue デストラクタ メソッド。
GetQueueObject キューから次の項目を取得する。
PutQueueObject キューに項目を入れる。