- 498 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 20:09:14 ]
- >>492
ワーカースレッドというのは、作業を行うスレッドという程度の意味です。 信号処理中はGUIが不要のようですので、GUIは1個のスレッドにまとめて下さい。 以下、基本は次のような処理になります。Q0とQ1のアクセスを排他制御して下さい。 プライマリスレッド メインウィンドウの作成。 バッファ群を作成する。例えば5ms用のバッファをN個作成して、 2個のキューQ0(未使用バッファ用)とQ1(充填済みバッファ用)を作成する バッファを全てQ0に格納し、スレッドA・Bを作成・実行する。 以降はGUIによるスレッドA・Bのコントロールを行う スレッドA(バッファ充填処理) 1.信号受信処理の初期化 2.Q0からバッファを取り出す。無ければ待つ。 3.バッファを充填する処理(この辺で外部からのスレッド終了通知チェック) 4.バッファが一杯になったらQ1へ入れ、2へ戻る スレッドB(信号処理スレッド) #スレッドAで、Q1の格納数が0->1になったとき起こされる。 1.Q1からバッファを取り出す(なければ待つ) 2.信号処理(この辺で外部からのスレッド終了通知チェック) 3.結果の出力 4.バッファをQ0へ入れ、1へ戻る
|

|