全域變數如何使用在執行緒中 |
答題得分者是:aftcast
|
chiunyu
一般會員 發表:2 回覆:3 積分:1 註冊:2012-07-05 發送簡訊給我 |
請問各位前輩
在某xxx.h檔內喧告一個變數 int A; 以下範例無法讓按鍵變更 A 變數,並讓執行緒使用此A變數 void __fastcall TMyThread::Execute()//執行緒 function { while(1) { if (A == 1) { ... } if(A == 2) { ... } } } void __fastcall TForm1::Button1Click(TObject *Sender) { A = 1; } void __fastcall TForm1::Button2Click(TObject *Sender) { A = 2; } 有何方式可讓執行緒與按鍵共用某變數,謝謝 |
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
|
chiunyu
一般會員 發表:2 回覆:3 積分:1 註冊:2012-07-05 發送簡訊給我 |
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
extern 的用法你可能不太了解。我舉個例子。
unit2.h宣告如下: extern PACKAGE TForm2 *Form2; extern int gTestVar; //注意放在這裡 unit2.cpp 定義如下: TForm2 *Form2; int gTestVar = 0; // 注意放在這裡 __fastcall TForm2::TForm2(TComponent* Owner) gTestVar = 7; } 另一個unit3上的cpp #include "Unit3.h" #include "Unit2.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm3 *Form3; //--------------------------------------------------------------------------- __fastcall TForm3::TForm3(TComponent* Owner) gTestVar = 8; ShowMessage(gTestVar); } ===================引 用 chiunyu 文 章=================== 蕭沖大大的方式 試過 更改為 extern int A 的方式 於compile會出現錯誤,blog也參考過,目前想先試試全域變數於thread與bottom間共用的作法,能否再給與建議呢,謝謝
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
chiunyu
一般會員 發表:2 回覆:3 積分:1 註冊:2012-07-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |