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 | キューに項目を入れる。 |