ワーカースレッドについて質問(VC8 MFC) – 固定ページ 2 – プログラミング – Home

ワーカースレッドについて質問(VC8 ...
 
通知
すべてクリア

[解決済] ワーカースレッドについて質問(VC8 MFC)

固定ページ 2 / 2

PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

グローバル変数の宣言と言う部分と書かれている内容に疑問。

グローバル変数と言うのは、グローバル領域に定義した変数なので
アプリケーションクラスのメンバー変数にはならないですよ。

例えばですが、あるダイアログの中でワーカースレッド上で動く
関数を作成するとして、画面の表示をそのダイアログで担当する
とした時は、ダイアログクラスの実装をしているソースファイルの
グローバル領域で変数を宣言するというような具合になります。

C++言語でやり取りが楽だからと言うような理由だけで
グローバル変数を多用するのは良く無いと思いますけれど、
きちんとした理由があって使う分には問題無いと思います。


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

ちなみにですが、私の場合は

共有データクラスを作成してその中にやり取りするデータをメンバー変数で定義。
メンバー変数はprivateにしておいて、各メンバー用にゲッターとセッターを
作成。(このゲッターとセッターの中でクリティカルセクションで排他します)

で、この共有データクラスのインスタンスをグローバル領域に宣言します。
上記の書き込みにあるようにダイアログとワーカースレッドの両方から
参照できるようにグローバル変数として宣言。

とは言え、これは私流のやり方なのでこうしないといけないという話ではないです。
アプリケーションクラスにメンバーにするとアプリ全体で参照する可能性があるように
見えるので直接見える部分をある程度限定したいという思いが私の実装の理由です。


返信引用
固定ページ 2 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました